我正在尝试对我的用户数据库运行查询,但遇到了一些麻烦。我想获取相关行的数量并以此为基础。我会让我的场景解释:
用户可以在我的应用中拥有_很多视频。就我而言,我想返回所有没有视频的用户。还有一些其他条件,但这是我遇到麻烦的地方。理想情况下,我的查询类似于(kinda sudo-code):
SELECT count(*) FROM users
JOIN videos ON users.id=videos.user_id
WHERE
users.some_attribute = 1
OR
(users.last_login >= '03/18/2012' AND COUNT(videos) > 0)
感谢任何帮助。
谢谢!! - 杰夫
最佳答案
你可以在 SQL 中使用 Having 语句:
SELECT count(*) FROM users
JOIN videos ON users.id=videos.user_id
WHERE users.some_attribute = 1 OR users.last_login >= '03/18/2012'
HAVING COUNT(videos.<some_column>) > 0)
添加编辑以响应以下评论:
SELECT count(*) FROM users
WHERE users.some_attribute = 1
UNION
SELECT count(*) FROM users
JOIN videos ON users.id=videos.user_id
WHERE users.last_login >= '03/18/2012'
HAVING COUNT(videos.<some_column>) > 0)
关于mysql - 基于关联数的 SQL 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483348/