gpt4 book ai didi

MySQL Join 忽略电子邮件列值为空的行

转载 作者:行者123 更新时间:2023-11-29 07:20:18 24 4
gpt4 key购买 nike

我正在尝试在 MySQL 中完成多个表的 JOIN。我已经成功编写了以下查询:

SELECT
CONCAT(c.first_name, ' ', c.last_name) as name,
c.title,
c.department,
CONCAT(c2.first_name, ' ', c2.last_name) as reports_to,
c.phone_work,
c.phone_mobile,
e.email_address
FROM
email_addresses e,
email_addr_bean_rel eb,
contacts c
LEFT JOIN
contacts c2 ON c.reports_to_id = c2.id
WHERE
c.id = eb.bean_id and
e.id = eb.email_address_id;

这正在生成一个包含我需要的数据的表,唯一的问题是这不包括完整的联系人列表。当我对联系人进行计数时,有 130 个,但是通过上述查询,结果减少到 86 个。

经过一番调查后,我发现这是由于没有电子邮件地址的联系人被忽略所致,我不希望出现这种情况,但不确定如果他们有空条目,如何阻止他们被忽略。

email_addresses 表包含电子邮件地址,但要获取 联系人电子邮件地址,必须在 中进行查找email_addr_bean_rel 首先使用contacts id

最佳答案

SELECT CONCAT_WS(' ',c.first_name,c.last_name) name
, c.title
, c.department
, CONCAT_WS(' ',c2.first_name,c2.last_name) reports_to
, c.phone_work
, c.phone_mobile
, e.email_address
FROM contacts c
LEFT
JOIN email_addr_bean_rel eb
ON eb.bean_id = c.id
LEFT
JOIN email_addresses e
ON e.id = eb.email_address_id
LEFT
JOIN contacts c2
ON c2.id = c.reports_to_id

关于MySQL Join 忽略电子邮件列值为空的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36452718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com