來源 1 來源2 DECLARE @TableA table ( id int , name nvarchar ( 20 ) ) DECLARE @TableB table ( id int , name nvarchar ( 20 ) ) insert @TableA values ( 1 , 'A' ),( 2 , 'B' ),( 3 , 'C' ),( 4 , 'D' ) insert @TableB values ( 1 , 'E' ),( 2 , 'B' ),( 3 , 'F' ),( 4 , 'C' ) select * from @TableA select * from @TableB -- 產生是 A 和 B 的交集的資料列 SELECT * FROM @TableA t1 INNER JOIN @TableB t2 ON t1 . name = t2 . name --FULL JOIN 即為 LEFT JOIN(A) 與 RIGHT JOIN(B) 的聯集。 有時候也可以利用它來找尋不相匹配的資料,則會以 null 做為值。 SELECT * FROM @TableA t1 FULL OUTER JOIN @TableB t2 ON t1 . name = t2 . name --Left outer join 產生表 A 的完全集,而 B 表中匹配的則有值,沒有匹配的則以 null 值取代 SELECT * FROM @TableA t1 LEFT OUTER JOIN @TableB t2 ON t1 . name = t2 . name -- 回傳的是右邊資料表中所有資料列,以及另一邊資料表中符合 join 條件中匹配的資料列傳回 NULL 值 SELECT * FROM @TableA t1 RIGHT OUTER JOIN @TableB t2 ON t1 . name = t2 . name --WHERE t1.id