mysql 连表查询和连接查询的区别
答案:2 悬赏:10 手机版
解决时间 2021-03-06 18:27
- 提问者网友:蔚蓝的太阳
- 2021-03-06 15:33
mysql 连表查询和连接查询的区别
最佳答案
- 五星知识达人网友:执傲
- 2021-03-06 16:18
多表查询
SELECt * FROM a,b WHERe a.val = b.val;
连接查询
SELECt * FROM a LEFT JOIN b ON a.val = b.val;
重点:其实两种都是连接查询
多表查询即自然连接查询,如下
SELECt * FROM a join b WHERe a.val = b.val;
自然连接查询:默认使用主键进行连接,且不能改变(即不需要on关键字),可通过where子句进行条件筛选,这也是和其他连接查询最大的不同
SELECt * FROM a,b WHERe a.val = b.val;
连接查询
SELECt * FROM a LEFT JOIN b ON a.val = b.val;
重点:其实两种都是连接查询
多表查询即自然连接查询,如下
SELECt * FROM a join b WHERe a.val = b.val;
自然连接查询:默认使用主键进行连接,且不能改变(即不需要on关键字),可通过where子句进行条件筛选,这也是和其他连接查询最大的不同
全部回答
- 1楼网友:洒脱疯子
- 2021-03-06 17:04
以下介绍mysql内连接和外连接的区别:
--表tab1
id name
1, jack
2, tom
3, kity
--表tab2
id grade
1, 56
2, 76
11, 89
内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 inner join tab2 t2 on t1.id=t2.id
结果:
id name t2id grade
1 jack 1 56
2 tom 2 76
外连接又分为左外连接和右外连接。
左连接即left outer join:
两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 left outer join tab2 t2 on t1.id=t2.id
结果:
id name t2id grade
1 jack 1 56
2 tom 2 76
3 kity null null
右连接即right outer join:
两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。
select t1.*,t2.id as t2id,t2.grade from tab1 t1 right outer join tab2 t2 on t1.id=t2.id
结果:
id name t2id grade
1 jack 1 56
2 tom 2 76
null null 11 89
以上通过一个例子描述内连接和外连接的区别。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯