我是一个数据库新手,所以请原谅我的天真。 我有以下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。
这可以实现吗?
任何提示/帮助都非常感激。
答案 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