SQL SERVER LEFT JOIN, INNER JOIN, RIGHT JOIN
阿新 • • 發佈:2017-07-08
技術 reat 至少 value com upper 左右 div server
- JOIN: 如果表中有至少一個匹配,則返回行
- LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
- RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
- FULL JOIN: 只要其中一個表中存在匹配,就返回行
CREATE TABLE dbo.Student ( Sno int null ,Name nvarchar(23) ) CREATE TABLE dbo.Score ( Sno int ,Score INT ) INSERT INTO dbo.Student(Sno,Name)VALUES(1,‘Jesse‘); INSERT INTO dbo.Student(Sno,Name)VALUES(2,‘Jessca‘); INSERT INTO dbo.Student(Sno,Name)VALUES(3,‘June‘); INSERT INTO dbo.Student(Sno,Name)VALUES(4,‘Supper‘); INSERT INTO dbo.Score(Sno,Score)VALUES (1,45) INSERT INTO dbo.Score(Sno,Score)VALUES (1,56) INSERT INTO dbo.Score(Sno,Score)VALUES (2,100) INSERT INTO dbo.Score(Sno,Score)VALUES (3,25)
查看數據:
SELECT * FROM dbo.Student SELECT * FROM dbo.Score
Left Join 會顯示出左邊的全部數據,右邊如果沒有對應的值,系統默認NULL
SELECT * FROM dbo.Student a LEFT JOIN dbo.Score b ON a.Sno=b.Sno
INNER JOIN 顯示交集
SELECT * FROM dbo.Student a INNER JOIN dbo.Score b ON a.Sno=b.Sno
right join 右表全部顯示,左表沒有,默認設置為NULL
SELECT * FROM dbo.Student a RIGHT JOIN dbo.Score b ON a.Sno=b.Sno
FULL JOIN 左右邊都顯示,如果對方沒有值得統一設置NULL
SELECT * FROM dbo.Student a FULL JOIN dbo.Score b ON a.Sno=b.Sno
SQL SERVER LEFT JOIN, INNER JOIN, RIGHT JOIN