Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:为严格类别的关系表编写查询_Mysql_Database_Relational Database - Fatal编程技术网

MySQL:为严格类别的关系表编写查询

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

我想写一个查询,只选择特定国家的问题,因此当我选择包含国家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 
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
对吗?