溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Sql連表查詢

發(fā)布時間:2020-05-19 03:20:14 來源:網絡 閱讀:367 作者:小情緒控 欄目:軟件技術

1.Union:使用union是組合兩張表,消去表中重復行,兩張表查詢的結果有相同數(shù)量的列、列類型相似;UNION ALL,不消除重復行
教師表:

ID Name
101 Mrs Lee
102 Lucy

學生表:

ID Name Age City MajorID
101 Tom 20 BeiJing 10
102 Lucy 18 ShangHai 11

SELECT Name FROM Students
UNION ALL
SELECT Name FROM Teachers
結果是:

ID Name
101 Tom
102 Lucy
101 Mrs Lee
102 Lucy

2.INNER JOIN(內連接):內連接,只查匹配行
Majors表:

ID Name
10 English
12 Computer

實例:查詢學生信息,包括ID,姓名、專業(yè)名稱
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students INNER JOIN Majors
ON Students.MajorID = Majors.ID
查詢結果

ID Name MajorName
101 Tom English

3.外連接 :左外連接、右外連接和全外連接,對應LEFT/RIGHT/FULL OUTER JOIN
重點:至少有一方保留全集,沒有匹配行用NULL代替
1)LEFT OUTER JOIN:結果集保留左表的所有行,但只包含第二個表與第一表匹配的行。第二個表相應的空行被放入NULL值
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students LEFT JOIN Majors
ON Students.MajorID = Majors.ID
結果:

ID Name MajorName
101 Tom English
102 Lucy NULL

2)RIGHT OUTER JOIN:右外連接保留了第二個表的所有行,但只包含第一個表與第二個表匹配的行。第一個表相應空行被入NULL值
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students RIGHT JOIN Majors
ON Students.MajorID = Majors.ID
結果:

ID Name MajorName
101 Tom English
Null NULL Computer

3)FULL OUTER JOIN:把兩個表所有的行都顯示在結果表中
SELECT Students.ID,Students.Name,Majors.Name AS MajorName
FROM Students FULL JOIN Majors
ON Students.MajorID = Majors.ID
結果:

ID Name MajorName
101 Tom English
102 Lucy NULL
NULL NULL Computer
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI