SQL-запрос для проверки наличия нескольких записей

#sql

#sql

Вопрос:

У меня есть таблица det со следующими столбцами:

 Name  ID
--------
A     1
B     2
C     1
D     3
  

Мне нужен запрос, чтобы проверить, существует ли множественная запись имени для одного идентификатора. Здесь я ожидаю такого результата:

 Name  ID
--------
A     1
c     1
  

Ответ №1:

вы можете использовать простой запрос select с group by

 SELECT ID, count(*) from det group by ID having count(*) >1
  

Комментарии:

1. Если могут существовать повторяющиеся имена, используйте ...having count(distinct name) > 1

Ответ №2:

Используйте подзапрос, в котором вы выбираете соответствующие идентификаторы, имеющие несколько имен

 SELECT Name, ID
FROM det
WHERE ID IN (
  SELECT ID
  FROM det
  GROUP BY ID
  HAVING COUNT(Name) > 1
);
  

Комментарии:

1. Точный результат, который я получил. Thnaks alot

Ответ №3:

Я бы просто использовал exists :

 select d.*
from det d
where exists (select 1 from det d2 where d2.id = d.id and d2.name <> d.name);