join用法
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
總結
- 上一篇: CTR
- 下一篇: zoj1081判断点是否在多边形内