MYSQL-获取具有相同id的多条记录的所有记录
如果我没有正确解释,我提前道歉。我几乎无法用英语解释,更不用说mysql查询了 我正在尝试获取一个MYSQL-获取具有相同id的多条记录的所有记录,mysql,sql,Mysql,Sql,如果我没有正确解释,我提前道歉。我几乎无法用英语解释,更不用说mysql查询了 我正在尝试获取一个问题\u id具有多条记录的响应\u集\u id列表 以下是我的数据示例: +----+-----------------+-------------+-----------+ | id | response_set_id | question_id | answer_id | +----+-----------------+-------------+-----------+ | 1 |
问题\u id
具有多条记录的响应\u集\u id
列表
以下是我的数据示例:
+----+-----------------+-------------+-----------+
| id | response_set_id | question_id | answer_id |
+----+-----------------+-------------+-----------+
| 1 | 10 | 1 | 4 |
| 2 | 10 | 2 | 5 |
| 3 | 10 | 3 | 6 |
| 4 | 10 | 3 | 7 |
| 5 | 11 | 1 | 8 |
| 6 | 11 | 2 | 9 |
| 7 | 11 | 3 | 10 |
+----+-----------------+-------------+-----------+
我希望有一个查询返回一个列表响应集id,在这个特定示例中,我希望返回10
,因为该响应集有question\u id->3
多次显示
如果您需要任何进一步的信息来帮助我,请告诉我
我试过这个:
选择响应集合id,按响应集合id从响应组中计数(问题id)代码>
但这只给出了每个回答集的问题数
提前谢谢你 我相信以前有人问过这个问题,但我无法在我目前的代表处添加评论:
select distinct response_set_id from (
select response_set_id , question_id
from
responses
group by
response_set_id, question_id
having count(*)>1) a
SELECT DISTINCT response_set_id
FROM responses
GROUP BY question_id
HAVING COUNT(question_id) > 1
最简单的方法不使用子查询:
SELECT DISTINCT response_set_id
FROM responses
GROUP BY response_set_id, question_id
HAVING COUNT(*) > 1;
这是使用select distinct
与groupby
组合(适当地)的极少数实例之一。请参阅下面的答案,我确信多次这样做无效。它返回的记录与我尝试执行的操作不匹配。我很抱歉,如果这个问题被问了几千次,我找不到有效的方法。我需要找到多次具有相同问题id的响应集id。问题_id可用于其他回答_set _id。谢谢!但这也不起作用:(它没有返回任何内容,而它本应至少返回1条记录。如果我弄清楚为什么不起作用,我会考虑一下,然后再与您联系。抱歉,删除id-现在应该起作用-随时查看上面的更新-如果您需要其他更好的帮助,请告诉我!效果很好。谢谢