mysql - 检查多个表中的单个值并检查响应

标签 mysql sql database join relational-database

我有一个 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/

相关文章:

mysql - 存储数据关系的更好方法(Redis 或 Mysql)

sql - 就位逗号分隔值的聚合

mysql - Sql - 带有 IN 条件的 WHERE 子句

mysql - MySQL 查询数百万条记录速度缓慢

sql-server - 将一个数据库的表与另一个数据库的表进行比较

php - 我的PHP代码需要显示所有行;怎么才能做到这一点

mysql - 在 MySQL 中记录锁

mysql - SQL 插入(从中选择)

javascript - 使用javascript提取同一域上的mySQL数据

python - Django 立即保存并返回对象(使用自定义 pk)