【发布时间】:2017-12-15 10:37:13
【问题描述】:
我有一个关于 sql 查询的问题,对我来说这似乎很简单,但无法让它正常工作。
所以我有这张桌子:
broadcast_media_id 告诉我数据是 1 - 电子邮件还是 2 - 电话。我需要为一名员工(具有相同的employee_id)收集电子邮件和电话。
我试过的查询是这样的:
SELECT DISTINCT ed.employee_id,
ed.text_value AS email,
x.text_value AS phone
FROM employee_data ed
INNER JOIN
(
SELECT employee_id,
text_value
FROM employee_data
WHERE broadcast_media_id = 2
) x ON x.employee_id = ed.employee_id
WHERE broadcast_media_id = 1
不幸的是,由于 WHERE 子句,我只有在员工有电子邮件时才能获得值。所以结果是这样的:
我错过了“A773B230-754C-423F-97C4-E331268EA3C8”的电话号码,因为他没有电子邮件。我也想显示这一行,并且电子邮件的值为 NULL。
对我来说似乎很简单,但我无法弄清楚。
感谢您的帮助。
【问题讨论】:
-
然后使用
left join
标签: sql sql-server outer-join