2009-02-14 107 views
1

我是一個數據庫新手,所以請原諒我的天真。 我有以下SQL語句:檢索所有記錄 - 內部連接

SELECT DISTINCT dbo.tb_user.familyName, 
dbo.user_email.email FROM dbo.tb_user 
INNER JOIN dbo.user_email ON (dbo.tb_user.id = dbo.user_email.userID) 

這將返回其中一個電子郵件地址存在的記錄。

我想要做的是檢索所有的記錄,以便我可以看到哪些用戶有和沒有電子郵件地址記錄在數據庫中。

這可以實現嗎?

任何提示/幫助非常感謝。

回答

7

你需要使用一個左外連接..

SELECT DISTINCT dbo.tb_user.familyName,dbo.user_email.email 
FROM dbo.tb_user LEFT OUTER JOIN dbo.user_email 
ON (dbo.tb_user.id = dbo.user_email.userID) 
3

你想要的東西被稱爲「外部聯接」。在外連接中,表格列出的順序與您列出的內連接不同。第二個列出的是外部列表,並且在沒有匹配的情況下將顯示NULL(至少在MySQL中,我迄今爲止唯一使用外部連接的情況)。NULL

SELECT DISTINCT dbo.tb_user.familyName, dbo.user_email.email FROM dbo.tb_user LEFT OUTER JOIN dbo.user_email ON(dbo.tb_user.id = dbo.user_email.userID)

0

嘗試這個工程....

SELECT DISTINCT tb_user.familyName, 
       user_email.email 
FROM tb_user 
LEFT JOIN user_email 
ON tb_user.id = user_email.userID