a表:
b表:
右连接(显示所有右边的,左边没有的就显示null)
SELECT a.c, a.d, b.c, b.d from a right join b on a.d = b.d
SELECT aa.c, aa.d, bb.c, bb.d from a aa right join b bb on aa.d = bb.d
左连接
SELECT aa.c, aa.d, bb.c, bb.d from a aa left join b bb on aa.d = bb.d
可以发现左连接和右连接是一样的
内连接
SELECT aa.c, aa.d, bb.c, bb.d from a aa join b bb on aa.d = bb.d
内连接也是一样的
用下面的例子:
a
b
右连接:
SELECT aa.c, aa.d, bb.c, bb.d from a aa right join b bb on aa.d = bb.d
左连接
SELECT aa.c, aa.d, bb.c, bb.d from a aa left join b bb on aa.d = bb.d
内连接
SELECT aa.c, aa.d, bb.c, bb.d from a aa join b bb on aa.d = bb.d
思考题:
如何生成如下的表:
select a.c, a.d, b.c, b.d from a left join b on a.d = b.d
union
select a.c, a.d, b.c, b.d from a right join b on a.d = b.d
union将多个查询结果合并起来,并自动去掉重复元祖
如果要保留重复元祖用union all