
内联就是全部都要符合条件, 没有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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)