【问题标题】:MYSQL filter by count of another tableMYSQL 按另一个表的计数过滤
【发布时间】:2011-07-21 22:07:45
【问题描述】:

我开始使用 MYSQL。 我有以下查询:

SELECT answers.data. * , COUNT( answers.reports.id ) AS rcount
FROM answers.data
LEFT JOIN answers.reports ON answers.data.id = answers.reports.answer_id
WHERE answers.data.question='4'
GROUP BY answers.data.id

它向我返回了当前问题的所有答案,并添加了一个名为 rcount(报告数量)的列

我希望它只返回少于 3 个报告的那些。我尝试了以下代码:

SELECT answers.data. * , COUNT( answers.reports.id ) AS rcount
FROM answers.data
LEFT JOIN answers.reports ON answers.data.id = answers.reports.answer_id
WHERE answers.data.question='4' AND rcount < '3'
GROUP BY answers.data.id

但显然这不是新条件的所在。我在手册中找不到解决方案,因为我是新手。 谢谢

【问题讨论】:

    标签: mysql sql database count


    【解决方案1】:

    使用HAVING 子句:

    SELECT answers.data.* , COUNT( answers.reports.id ) AS rcount
    FROM answers.data
    LEFT JOIN answers.reports ON answers.data.id = answers.reports.answer_id
    WHERE answers.data.question='4'
    GROUP BY answers.data.id
    HAVING COUNT( answers.reports.id ) < 3
    

    【讨论】:

    • 这就像一个魅力。来自其他编程领域,我根本不习惯这种语法。我自己(和手册)想出了其他所有东西,但在这个上迷失了。谢谢
    • 时尚潮流来来去去。经典永存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多