数据库-6

多表连接查询

多表连接查询是通过各个表之间共同列的关联性(例如:外键)来查询的。

多表连接查询的分类

  内连接(INNER JOIN) ,可简写为 JOIN;

  左外连接(LEFT OUTER JOIN),可简写为LEFT JOIN;

  右外连接(RIGHT OUTER JOIN),可简写为RIGHT JOIN;

  自连接查询;

  交叉连接(CROSS JOIN)也称为 笛卡儿乘积连接,基本上用不到。

内连接

内连接:内连接使用比较运算符根据每个表的通用列中的值匹配两个表中的行。

语法:#第一种写法

SELECT   字段列表   FROM   表1  INNER JOIN  表2

ON    表1.通用字段名=表2.通用字段名                              

 

#第二种写法

SELECT   字段列表 FROM   表1 ,表2

WHERE    表1.通用字段名=表2.通用字段名

注意:如果两个表中有相同的字段名,必须在列名前加表名。否则将出现 错误代码:1052 Column 'studentno' in field list is ambiguous

左外连接

语法:#左外连接

SELECT   字段列表   FROM   表1  LEFT JOIN  表2

ON    表1.通用字段名=表2.通用字段名

左外连接:左表(表1)的记录将会全部表示出来,而右表(表2)只会显示符合匹配条件的记录。

                  1.匹配,返回到结果集

 

                  2.无匹配,NULL值返回到结果集

右外连接

语法:#右外连接

SELECT   字段列表   FROM   表1  RIGHT JOIN  表2

ON    表1.通用字段名=表2.通用字段名

右外连接:右表(表2)的记录将会全部表示出来,而左表(表1)只会显示符合匹配条件的记录。

                 1.匹配,返回到结果集                       

 

                2.无匹配,NULL值返回到结果集

不同的SQL JOIN对比

操作符名称

描述

INNER   JOIN 

如果表中有至少一个匹配,则返回行

LEFT JOIN

不论右表是否有匹配,都会返回左表的所有行

RIGHT JOIN

不论左表是否有匹配,都会返回右表的所有行

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值