mysql - SQL查询根据另一个表中的条目派生列值

标签 mysql sql

我有一个包含字段idemailperson 表。

还有一个包含以下字段的订阅表:person_idcategory_id

如果一个人订阅了订阅表,表中至少会有一个条目。

我想查询第 3 列为 1 或 0 的 person 表,具体取决于 person 是否订阅。

select p.id, p.email , [is_subscribed] 
from person p

is_subscribed 如果 subscription 表中有条目,则应为 1,否则应为 0。

我怎样才能实现上述目标?

最佳答案

在订阅和计数上使用 LEFT JOIN(在多个订阅的情况下)

SELECT p.id,p.email,IF(COUNT(s.category_id)>0,1,0) as is_subscribed
FROM
person as p
LEFT JOIN subscription as s ON s.person_id=p.id
GROUP BY p.id

关于mysql - SQL查询根据另一个表中的条目派生列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12261614/

相关文章:

Mysql 选择 N 个重复项,省略 1 个重复项

mysql - 如何使用mysql替换字符串的一部分

python - PyMySQL、MySQL、Python : String formatting

mysql - 计算每个唯一元素在 `select` 查询中出现的次数

php - Mysql 'WHERE'方法比较

php - MySQL 查询表 - 不显示第一个结果

mysql - GTFS数据-停止数据

MySQL 将邮件列表中的人名组合起来

sql - 从 unix 时间戳字段中获取 DATE 或 DATE AND TIME 范围内的记录

SQL SELECT FOR SALES WITH 'COUNT' from another table