SQL多表连接查询分类

SQL多表连接查询分类:

1、等值连接查询

1.1、内链接查询

1.2、自然连接查询

 

2、外连接查询,包括

2.1、左外连接查询

2.2、右外连接查询

2.3、全外连接查询

 

3、交叉连接查询

 

 

现在有2张表,一张t_user,一张t_book,一对多的关系,二者没建立外键,其中个t_user中有个user没在t_book中体现,t_book中有条book的userId也没有在t_user中体现。

 

等值连接查询:

select * from t_user u
inner join t_book b
on u.id=b.userid
 

结果只有2张表的有关联的数据才被查出来了。

 

它相当于用where的连接查询:

SELECT * FROM t_book b,t_user u WHERE u.id=b.userid
 

自然连接查询:不需要指明任何等同连接条件就可以查出来,并且能去掉重复的列。

SELECT * FROM t_book b
NATURAL JOIN t_user u

 

左外连接查询:

 

select * from t_user u
left join t_book b
on u.id=b.userid

它等同于把t_user放在right join后面的

右外连接查询:

SELECT * FROM t_book b
RIGHT JOIN t_user u
ON u.id=b.userid

 

   全外连接查询:在mysql中好像有问题??

SELECT * FROM t_book b
FULL JOIN t_user u
ON u.id=b.userid

 

 

交叉连接查询:如果后面不带on,那么结果是两个表列的乘积,笛卡尔积


SELECT * FROM t_book b
CROSS JOIN t_user u
 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值