供參考的緣故的行爲,我想指出的是,這取決於兩個表是否不完全匹配。此代碼顯示了處理這些情況的不同方式。有更好的例子(我特別喜歡那些維恩圖),但這些可能有助於目前的情況:
DECLARE @TableA TABLE (fname NVARCHAR(20), lname NVARCHAR(20), email NVARCHAR(30))
DECLARE @TableB TABLE (leavedate DATE, email NVARCHAR(30))
INSERT INTO @TableA (fname, lname, email) VALUES
('Jim','Halpert','[email protected]'),
('Pam','Beasley-Halpert','[email protected]'),
('Michael','Scott','[email protected]'),
('Toby','Flenderson','[email protected]')
INSERT INTO @TableB (leavedate, email) VALUES
('2010-05-04','[email protected]'),
('2008-03-14','[email protected]')
SELECT ta.*, tb.leavedate
FROM @TableA ta
LEFT JOIN @TableB tb
ON ta.email = tb.email
SELECT ta.fname, ta.lname, tb.email, tb.leavedate
FROM @TableA ta
RIGHT JOIN @TableB tb
ON ta.email = tb.email
SELECT ta.fname, ta.lname, COALESCE(ta.email,tb.email,''), tb.leavedate
FROM @TableA ta
FULL JOIN @TableB tb
ON ta.email = tb.email
這就是我需要:)非常感謝! –