1.INNER JOIN 產生的結果是AB的交集 spa
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
2.LEFT [OUTER] JOIN 產生表A的徹底集,而B表中匹配的則有值,沒有匹配的則以null值取代。
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name
3.RIGHT [OUTER] JOIN 產生表B的徹底集,而A表中匹配的則有值,沒有匹配的則以null值取代。
SELECT * FROM TableA RIGHT OUTER JOIN TableB ON TableA.name = TableB.name
圖標如left join相似。 orm
4.FULL [OUTER] JOIN 產生A和B的並集。對於沒有匹配的記錄,則會以null作爲值。
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
你能夠經過is NULL將沒有匹配的值找出來:
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
WHERE TableA.id IS null OR TableB.id IS null
ci
5. CROSS JOIN 把表A和表B的數據進行一個N*M的組合,即笛卡爾積。如本例會產生4*4=16條記錄,在開發過程當中咱們確定是要過濾數據,因此這種不多用。
SELECT * FROM TableA CROSS JOIN TableB
相信你們對inner join、outer join和cross join的區別一目瞭然了。 開發