Весенняя находка по уникальным свойствам

#java #mysql #sql #hibernate #spring-data-jpa

Вопрос:

Дана 1 реляционная таблица

Doctor_ID Идентификатор клиента
2 2
2 3
2 4
3 5
4 2
4 3

И я хочу, чтобы все случаи, когда client_id не равен 3, игнорировали один и тот же идентификатор doctor_id.

В этом примере я бы получил только 4-ю строку…

Doctor_ID Идентификатор клиента
3 5

Как я мог добиться чего-то подобного?

Ответ №1:

Этот запрос с NOT EXISTS даст вам необходимые результаты.

 SELECT * FROM myTable a
WHERE NOT EXISTS (
    SELECT 1 FROM myTable b WHERE a.Doctor_ID = b.Doctor_ID AND Client_ID = 3
)
 

NOT EXISTS Будет отфильтрован идентификатор врача-муравья, у которого идентификатор клиента равен 3.