【发布时间】:2014-06-03 17:28:09
【问题描述】:
我有一个数据库,其中用户必须有一个用户名,并且在另一个表上有一个可选的联系人名称,由每个用户提供给他们。
例如:
用户 A 可能称用户 B 'FOO'
但用户 C 称用户 B 为“BAR”
用户 D 可能没有给用户 B 一个联系人姓名
所以它应该返回 NULL。
下面的查询可以让我得到所有的用户名和联系人姓名,即使是 NULL 这是所需的结果。
SELECT Login.username, PhoneNumber.phone, AddressBook.contact_name FROM Login
LEFT OUTER JOIN PhoneNumber ON Login.id = PhoneNumber.user_id
LEFT OUTER JOIN AddressBook ON PhoneNumber.phone = AddressBook.phone
但是,我只想返回 WHERE AddressBook.user_id = 67,它将返回用户 A 关联的用户名和联系人姓名。
目前,当我添加 WHERE AddressBook.user_id = 67 时,它不会返回任何预期的带有 NULL 值的联系人名称,但我需要那些带有 NULL 且没有 NULL 联系人名称的行。
我该怎么做?
谢谢
【问题讨论】:
标签: mysql sql join outer-join