MYSQL - получить все записи, имеющие более 1 записи для одного и того же идентификатора - PullRequest
0 голосов
/ 29 мая 2018

Я прошу прощения заранее, если я не объясняю это правильно.Я едва могу объяснить это английскими терминами, не говоря уже о запросе mysql.

Я пытаюсь получить список response_set_ids, в котором более 1 записи для question_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 |
+----+-----------------+-------------+-----------+

Я хотел бы получить запрос, который вернул бы мне список response_set_ids, и в этом конкретном примере я ожидал бы получить возвращенный10, потому что в поле response_set question_id -> 3 отображается более одного раза.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, чтобы помочь мне.

Я пробовал это: select response_set_id, count(question_id) from responses group by response_set_id;

Но это дает мне только количество вопросов на response_set.

Спасибо заранее!

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Я полагаю, что этот вопрос задавался ранее, но я не могу добавлять комментарии к моей текущей репутации:

SELECT DISTINCT response_set_id
FROM responses
GROUP BY question_id
HAVING COUNT(question_id) > 1
0 голосов
/ 29 мая 2018

Самый простой метод не использует подзапрос:

SELECT DISTINCT response_set_id
FROM responses
GROUP BY response_set_id, question_id
HAVING COUNT(*) > 1;

Это один из очень и очень немногих случаев, когда select distinct используется (соответственно) с group by.

0 голосов
/ 29 мая 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...