MySQL:为严格类别的关系表编写查询
我想写一个查询,只选择特定国家的问题,因此当我选择包含国家1和2的问题时,只显示包含2个国家的问题,这些国家是1和2 我有三张表格-问题,国家,问题MySQL:为严格类别的关系表编写查询,mysql,database,relational-database,Mysql,Database,Relational Database,我想写一个查询,只选择特定国家的问题,因此当我选择包含国家1和2的问题时,只显示包含2个国家的问题,这些国家是1和2 我有三张表格-问题,国家,问题 问题:身份证,问题 国家:身份证、姓名 问题有国家:问题号,国家号 我试过: SELECT q.question, q.id , c.id FROM questions as q, countries as c, questions_has_countries as qhc WHERE c.id = qhc.countries_id A
- 问题:身份证,问题
- 国家:身份证、姓名
- 问题有国家:问题号,国家号
SELECT q.question, q.id , c.id
FROM questions as q, countries as c, questions_has_countries as qhc
WHERE c.id = qhc.countries_id
AND qhc.questions_id = q.id
AND c.id IN (1,2)
GROUP BY q.question
HAVING COUNT( qhc.countries_id ) = 2
当我使用第5行(和(1,2)中的c.id)时,我的计数器停止正常工作,因为它缩小了搜索范围。我知道我必须重写它,但我不知道怎么写。请帮忙 删除
WHERE
子句,并将HAVING
子句更改为
HAVING SUM(c.id IN (1,2)) = 2 AND
COUNT(DISTINCT c.id) = 2
SUM(DISTINCT c.id)=2
我想你的意思是COUNT(DISTINCT c.id)=2
对吗?