T-SQL語句 多表查詢

1.內連接
內連接(INNER JOIN):只返回兩個數據集合之間匹配關係的行,將位於兩個互相交叉的數據集合中重疊部分以內的數據行連接起來。
內連接使用比較運算符進行表間某些列數據的比較操作,並列出這些表中與連接相匹配的數據行。
SELECT A.name 姓名A,A.school 學校A,B.name 姓名B,B.job 職業B FROM A,B WHERE A.name=B.name
SELECT A.name 姓名A,A.school 學校A,B.name 姓名B,B.job 職業B FROM A INNER JOIN B on A.name=B.name
若列名在兩表中不衝突,則可以省略表名。
2.左外連接
左外連接(LEFT JOIN 或LEFT OUTER JOIN)的結果集包括左表的所有行。如果左表的某一行在右表中沒有匹配行,則將爲右表返回空值,否則返回相應值。
SELECT A.name 姓名A,A.school 學校A,B.name 姓名B,B.job 職業B FROM A LEFT JOIN B on A.name=B.name
表A中的數據行全部顯示出來,表B中的數據只顯示了與連接條件匹配的行,其他行都以NULL值代替。
3.右外連接
右外連接(RIGHT JOIN 或RIGHT OUTER JOIN)是左外連接的反向連接,將返回右表的所有行。如果右表的某一行在左表中沒有匹配行,則將爲右表返回空值,否則返回相應值。
SELECT A.name 姓名A,A.school 學校A,B.name 姓名B,B.job 職業B FROM A RIGHT JOIN B on A.name=B.name
表B中的數據行全部顯示出來,表A中的數據只顯示了與連接條件匹配的行,其他行都以NULL值代替。
4.全外連接/完整外連接
全外連接/完整外連接(FULL JOIN 或FULL OUTER JOIN)將返回左表和右表中的所有行。當某一行在另一個表中沒有匹配行時,另一個表返回空值,否則返回相應值。
SELECT A.name 姓名A,A.school 學校A,B.name 姓名B,B.job 職業B FROM A FULL JOIN B on A.name=B.name
表A與表B中的數據行全部顯示出來,與連接條件不匹配的數據行都以NULL值代替。
5.交叉連接
交叉連接就是表之間沒有任何關聯條件,查詢將返回左表與右表挨個連接的所有行,就是左表中的每一行與右表中的所有行再一一組合,相當於兩個表“相乘”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章