我有一个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表中,但不存在于其他两个表中,因此我只会记住这个,而不是其他两个表,它们将以false响应。
我该怎么写这个查询?我非常困惑研究加入和其他事情,但仍然困惑请帮助。您可以在消息中请求表数据库架构,请帮助我
答案 0 :(得分:0)
有很多方法,取决于你想要的格式是它是列还是行以及其他东西。但是这里有一个示例,说明如何使用左连接和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