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
2498

被折叠的 条评论
为什么被折叠?



