检索所有记录 - 内部联接

时间:2009-02-14 02:27:59

标签: sql database join

我是一个数据库新手,所以请原谅我的天真。 我有以下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)

这将返回存在电子邮件地址的记录。

我想要检索所有记录,以便我可以看到哪些用户在数据库中记录了电子邮件地址/ es。

这可以实现吗?

任何提示/帮助都非常感激。

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:3)

你想要什么被称为“外部联接”。在外连接中,列出的表的顺序很重要,与您列出的内连接不同。列出的第二个是外部的,并且将显示NULL那些没有匹配的情况(至少在MySQL中,到目前为止我唯一使用外连接的地方。)

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

答案 2 :(得分:0)

尝试它有效....

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