gpt4 book ai didi

mysql - 选择未发送新闻通讯的用户

转载 作者:行者123 更新时间:2023-11-29 07:14:47 26 4
gpt4 key购买 nike

尝试创建查询来选择批处理超时时未通过电子邮件发送简讯的用户。 mail_log 表捕获来自 3 个不同邮件列表的条目,并维护过去 4-5 周的日志 - 换句话说,每个订阅者应该有多个日志条目。

我想选择在批量发送时超时而未收到电子邮件的所有订阅者。

mail_log
+--------+------------+-------------+------------+---------+
| log_id | send_date | location_id | mailing_id | list_id |
+--------+------------+-------------+------------+---------+
location_id is which mailing list
mailing_id is the specific newsletter
list_id is the subscriber's id in the mailing list

mail_list
+---------+-------+-------+-------+
| list_id | fname | lname | email |
+---------+-------+-------+-------+

我尝试过这个查询:

SELECT mail_list.*
FROM mail_list
LEFT JOIN mail_log ON mail_log.list_id = mail_list.list_id
WHERE mail_log.send_date = '2016-07-12'
AND mail_log.location_id = '2'
AND mail_log.list_id IS NULL`

查询返回 0 个结果,但成功的查询应返回大约 700 个结果。

最佳答案

当您使用LEFT JOIN时,您必须将对子表的限制放入ON子句中。否则,当您测试这些字段时,您将仅匹配非 NULL 行,这与 AND mail_log.list_id IS NULL 测试相矛盾。

SELECT mail_list.*
FROM mail_list
LEFT JOIN mail_log ON mail_log.list_id = mail_list.list_id
AND mail_log.send_date = '2016-07-12'
AND mail_log.location_id = '2'
WHERE mail_log.list_id IS NULL

关于mysql - 选择未发送新闻通讯的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339343/

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