MySQL Выберите идентификатор, если все столбцы под идентификатором не соответствуют условию - PullRequest
0 голосов
/ 27 мая 2020

У меня есть таблица «Платежи», где student_id - внешний ключ.

student_id  Monthpaid       year    payment_id  
51           1              2019    1
52           1              2019    2
51           2              2019    3

Я пробовал этот запрос:

SELECT * FROM Payments WHERE Monthpaid !=2

Я получаю такой результат:

student_id  Monthpaid       year    payment_id  
51           1              2019    1
52           1              2019    2
51           2              2019    3

Но я хочу это там, где ID 52 не имеет Monthpaid = 2:

student_id  Monthpaid       year    payment_id  
51           1              2019    1

1 Ответ

1 голос
/ 27 мая 2020

Думаю, вы искали:

select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.id = t.id and t2.monthpaid = 2
                 );

Это возвращает все строки для id, где id не имеет месяца 2. Вот как я интерпретирую ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...