表连接查询

【小编用的是Oracle数据库,Oracle数据库区分表名与字段名的大小写,所以大家进行查询的时候记得注意双引号哟~】

有表

表名:AAA 字段: id name tag

表名:BBB 字段: id ban qq

表名:AABB字段: id area location

分类:

1.内连接 inner join

select 列名 from 主表 inner join 从表

on 主表和从表关系

注意:

(1)必须要有on语句

(2)关系必须两表中都成立

主表和从表:

特点:结果是两表之间的公共数据

公共数据就是说两表中关系列的值要对应

比如:

SELECT * from  AAA INNER JOIN BBB ON AAA."id"=BBB."id"

查询显示:

[只显示条件都成立的数据]

2.外连接 outer join

a)左外连接 left outer join

select 列名 from 主表 left outer join 从表

on 关系 .....

SELECT * from  AAA LEFT JOIN BBB ON AAA."id"=BBB."id"

查询显示:

[左边为主表,主表全部显示,右边为副表,右边无符合数据时显示null,不符合的数据不会显示]

b)右外连接 right outer join

select 列名 from 从表 right outer join 主表

on 关系 .....

SELECT * from  AAA RIGHT JOIN BBB ON AAA."id"=BBB."id"

查询显示:

[右边为主表,主表全部显示,左边为副表,左边无符合数据时显示null,不符合的数据不会显示]

c)全外连接 full outer join

select 列名 from 主表 full outer join 主表

on 关系 .....

SELECT * from  AAA  full outer  JOIN BBB ON AAA."id"=BBB."id"

查询显示:

[左边为主表,右边为副表,主表和副表全部显示,右边无符合数据时显示null,左边无符合数据时显示null,符合条件的数据会显示在一行]

3.交叉连接 cross join

select 列名 from 主表 cross join 主表;

SELECT * from  AAA   cross  JOIN BBB

查询显示:

[左边为主表,右边为副表,显示的数据为乘积形式的数据。]

交叉连接查询不能带on子语

结果:两表查询结果的笛卡尔乘积

左表有3行    右表有3行数

结果:9行

附加:另一种连接查询,将多个表用逗号隔开查询

1.SELECT * from  AAA,BBB where AAA."id"=BBB."id"

[类似于内连接,只显示条件都成立的数据]

2.SELECT * from  AAA , BBB ;--不带where关系条件

[类似于交叉连接,左边为主表,右边为副表,显示的数据为乘积形式的数据。]

3.SELECT * from  AAA INNER JOIN BBB ON AAA."id"=BBB."id" INNER JOIN AABB ON BBB."id"=AABB."id"

SELECT * from  AAA INNER JOIN BBB ON AAA."id"=BBB."id" LEFT  JOIN AABB ON BBB."id"=AABB."location"

SELECT * from  AAA RIGHT  JOIN BBB ON AAA."tag"=BBB."ban" right  JOIN AABB ON BBB."id"=AABB."id"

[可以无限连接,想必到这应该懂了吧?想怎么join就怎么join,需要满足条件才显示的则要满足条件才显示,左右连接需要补null的,则要补null。]

还有就是:on 的时候可以写多个条件,例如:

SELECT * from  AAA  full outer  JOIN BBB ON AAA."id"=BBB."id" and AAA."name"=BBB."ban" and AAA."tag"=BBB."qq"

觉得有用的朋友希望可以帮忙“赞”一下哟(赠人玫瑰手有余香),谢谢^_^

jpi多表联查_数据库两表联查、多表联查,多重联查相关推荐

  1. mysql实验三单表和多表查询_数据库实验三(单表查询)

    实验三: select sno,sname from student;//(1)查询全体学生的学号和姓名 select * from student;//(2)查询全体学生的详细记录 select s ...

  2. java修改数据库表结构_数据库设计(一):设计传统系统表结构(Java开发)

    以下文章来源于微信公众号 程序编程之旅 ,作者陈浩翔 此处仅供本人学习记录之用,侵删 本篇为第一篇.讲解传统系统的表结构设计(Java开发). 讲讲如何避免数据库设计的一些坑,方便后期的开发与维护. ...

  3. mysql分库分表风险_数据库分库分表存在的问题及解决方案

    读写分离分散了数据库读写操作的压力,但是没有分散存储压力,当数据库的数据量达到千万甚至上亿条的时候,单台数据库服务器的存储能力就会达到瓶颈,主要体现在以下几个方面: 数据量太大,读写性能会下降,即使有 ...

  4. db2 查看表结构_数据库结构文档的生成利器

    之前我们每次的数据库变更,都会增量更新我们的数据库文档,如下所示,便于从文档中了解数据库结构, 但是自从我们开始使用自研的数据库变更管控平台,每次变更都会记录到系统中,因此不再手动更新这个文档.可最近 ...

  5. PLSQL如何将千万数据快速插入到另一张表中_数据库设计中的 9 大常见错误

    作为数据库设计人员,当我们负责数据库项目时,在数据库设计以及把数据库部署到生产环境的过程中可能会遇到一些挑战. 其中一些问题不可避免,也无法控制.但是,其中相当一部分可以追溯到数据库设计本身的质量.我 ...

  6. mysql 评论回复表设计_数据库设计——评论回复功能

    1.概述 评论功能已经成为APP和网站开发中的必备功能.本文主要介绍评论功能的数据库设计. 评论功能最主要的是发表评论和回复评论(删除功能在后台).评论功能的拓展功能体现有以下几方面: (1)单篇文章 ...

  7. mysql from多表顺序_数据库 from 表的顺序

    MY SQL语句常用集合 1个数据库通常包含一个或多个表.每个表由一个名字标识 1.SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数 ...

  8. mysql数据库的行级锁有几种_数据库行级锁和表锁区别

    MyISAM和InnoDB MyISAM MyISAM使用B+tree作为索引结构,叶节点存放的是数据地址. MyISAM不支持事务和外键. MyISAM是表锁,对数据库写操作时会锁住整个表,效率低. ...

  9. plsql 复制表结构到指定表空间_数据库知识总结—(八)数据库amp;表的CRUD

    一.创建表 本节用到的表结构如下: customers表 vendors表 orderitems表 一般有两种创建表的方法: 使用具有交互式创建和管理表的工具:或者直接用MySQL语句操纵. (1)表 ...

最新文章

  1. CSS:CSS+DIV布局网页
  2. 兰州现超级“牛大”碗比腰粗:牛肉面吃出火锅范
  3. 走进单元测试:测试需要从哪些方面着手
  4. php代码文字中怎么换行符,如何在imagestring(php中的文本到图像)中添加换行符(br)...
  5. 2014年3月26日,今天的收获_______每天都能觉得进步,这是多么好的一件事
  6. Scrapy定向爬虫教程(一)——创建运行项目和基本介绍
  7. Oracle 11gR2 GI日常管理手册
  8. 【转】前端开发值得一看的文章
  9. python负数的表示方法_python输入负数
  10. videojs默认显示controls 按钮功能失效_一文看懂Yearning SQL审核平台功能模块设计...
  11. oracle bitmap btree 索引,oracle之bitmap索引
  12. Java面试题!5年经验Java程序员面试27天,看看这篇文章吧!
  13. Justinmind恢复30天试用 For Mac
  14. php orm中关联查询,【整理】Laravel中Eloquent ORM 关联关系的操作
  15. Android动画定时lnvaliate,Android6.0 MTK6737 启动流程 · Younix’s Studio
  16. 郑州共享门店系统开发优势有哪些?
  17. php对接腾讯云直播,聊天,im,云录制产生回放
  18. OpenOCD+GDB学习记录(1)
  19. 松下LUMIX S1相机断电MDT文件修复MP4视频(LPCM)
  20. iframe vue 宽度_vue 如何自适应调整嵌入的 iframe 的大小,让用户完全感觉不出有 iframe 这个东西?...

热门文章

  1. Git 在团队中的最佳实践--如何正确使用Git Flow
  2. 综述:编程语言的发展趋势及未来方向
  3. 解决.NET Core中MailKit无法使用阿里云邮件推送服务的问题
  4. 有人撸了个网页版win11,惊艳!
  5. 我要偷偷学习C#,然后学习GIS二次开发之试题汇总(附答案)
  6. Android之RxJava(一)
  7. java剪切txt文件_用Java把剪切板的内容实时保存到txt
  8. 让TA们告诉你,疫情当下如何更彪悍的成长
  9. 假期别在家里要发霉了?可以靠他们度过无聊时光
  10. 如何用Python进行数据探索,探索竞赛优胜方案?