🎯INNER JOIN:精簡出共有的資料。
🎯LEFT JOIN & RIGHT JOIN:以左邊/右邊的表為主結合出共有的資料。
🎯FULL JOIN:列出所有表的全部資料。
►假設我們有的表:NAME
NUMBER
|
NAME
|
10
|
王大明
|
15
|
李小花
|
24
|
陳小兵
|
►假設我們有的表:POINTS
NUMBER
|
POINTS
|
24
|
80
|
17
|
90
|
10
|
60
|
SELECT A.[NUMBER],A.[NAME],B.[POINTS] FROM [NAME] AS A,[POINTS] AS B ---將NAME另命名為A,POINTS另命名為B,方便呼叫表 ---其命名的AS可省略,用空格替代 WHERE A.[NUMBER] = B.[NUMBER] ---要將兩表的共通欄位列出來Rusult
NUMBER
|
NAME
|
POINTS
|
10
|
王大明
|
60
|
24
|
陳小兵
|
80
|
---以LEFT為例 SELECT A.[NUMBER],A.[NAME],B.[POINTS] FROM [dbo].[NAME] AS A LEFT JOIN [dbo].[POINTS] AS B ON A.[NUMBER] = B.[NUMBER] ---將NAME另命名為A,POINTS另命名為B,方便呼叫表 ---其命名的AS可省略,用空格替代 ---不需要寫WHERE條件,直接用ON連接兩張表的共同欄位 ---LEFT JOIN會將A表的所有欄位列出,即使B配對不到;RIGHT JOIN則相反Rusult
NUMBER
|
NAME
|
POINTS
|
10
|
王大明
|
60
|
15
|
李小花
|
NULL
|
24
|
陳小兵
|
80
|
SELECT * ---*代表選取全部欄位 FROM [dbo].[NAME] AS A FULL JOIN [dbo].[POINTS] AS B ON A.[NUMBER] = B.[NUMBER] ---將NAME另命名為A,POINTS另命名為B,方便呼叫表 ---其命名的AS可省略,用空格替代Rusult
NUMBER
|
NAME
|
NUMBER
|
POINTS
|
10
|
王大明
|
10
|
60
|
15
|
李小花
|
NULL
|
NULL
|
24
|
陳小兵
|
24
|
80
|
NULL
|
NULL
|
17
|
90
|
留言
張貼留言