MySQL内联外联的区别

MySQL内联外联的区别,第1张

http://www.cnblogs.com/withscorpion/p/9454490.html

内联就是全部都要符合条件, 没有NULL

select * from t1 inner join t2 where t1.user_id = t2.user_id

把两个表中都存在userid的行拼成一行(即内联),但后者的效率会比前者高很多,建议用后者(内联)的写法。

左联(left outer join)。

select * from t1 left outer join t2 where t1.user_id = t2.user_id

左边的数据全部展示, 右边的数据符合条件的展示, 不符合条件的NULL展示

全联

显示左表T1、右表T2两边中的所有行,即把左联结果表 + 右联结果表组合在一起,然后过滤掉重复的。

select * from t1 full outer join t2 where t1.userid = t2.userid

内联:

a inner join b on a.id=b.id

查两张表都有的id记录

外联

a left join b on a.id=b.id

只要表a有的id,表a有,b没有的b字段为NULL

右外联:

a right join b on a.id=b.id

只要表b有记录,与左相反

在开发时,我们一般只进行单表查询,但有时候也会涉及到多表查询。内联查询和外联查询都是为了联合多张表进行信息查询。这里只是简单的说明几种联合查询如何使用,具体详细说明可以参看参考链接

假设有两张表t1和t2,共同字段为a

select * from t1 inner join t2 on t1.a == t2.a

将表t1和t2中满足条件的数据查找出来,拼接成一行

select * from t1 left outer join t2 on t1.a == t2.a

将表t1中的全部数据以及表t2中满足条件的数据拿出来,表t2中不满足的不加入结果表中并用NULL替代

select * from t1 right outer join t2 on t1.a=t2.a

将表t2中的全部数据以及表t1中满足条件的数据拿出来,表t1中不满足的不加入结果表中并用NULL替代

显示t1、t2两边中的所有行,即把左联结果表+右联结果表组合在一起,然后过滤掉重复的。

select * from 1 full outer join t2 on t1.a=t2.a

https://www.cnblogs.com/withscorpion/p/9454490.html


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9620108.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存