我有一个 mysql 表 mv4w_campaign_delivery_log
从那里我可以获得 Subscriber_id,然后在其他三个表中检查它
mv4w_campaign_track_open
mv4w_campaign_track_unsubscribe
mv4w_campaign_track_url
如果上表中存在subscriber_id,那么我会收到 true,否则会收到 false...
例如
订阅者 ID 存在于 mv4w_campaign_track_open 表中,但不存在于其他两个表中,因此我只会对此接收 true,而不是其他两个表,它们将响应 false ..
我该如何为此编写查询?我对学习加入和其他事情感到非常困惑,但仍然感到困惑,请帮助。您可以在消息中询问表数据库架构,请帮助我
最佳答案
有很多方法,具体取决于您想要的格式是列还是行以及其他内容。但这里有一个示例,说明如何将左连接与 case 语句结合使用,以查看它们是否是日志表中的相关记录。将来提问时向我们展示您的尝试!
SELECT
DISTINCT
l.Subscriber_id
,CASE WHEN o.Subscriber_id IS NULL THEN 0 ELSE 1 END as ExistsInOpen
,CASE WHEN un.Subscriber_id IS NULL THEN 0 ELSE 1 END as ExistsInUnsubscrib
,CASE WHEN u.Subscriber_id IS NULL THEN 0 ELSE 1 END as ExistsInUrl
FROM
mv4w_campaign_delivery_log l
LEFT JOIN mv4w_campaign_track_open o
ON l.Subscriber_id = o.Subscriber_id
LEFT JOIN mv4w_campaign_track_unsubscribe un
ON l.Subscriber_id = un.Subscriber_id
LEFT JOIN mv4w_campaign_track_url
ON l.Subscriber_id = u.Subscriber_id
关于mysql - 检查多个表中的单个值并检查响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38882120/