#mysql #sql #subquery
Вопрос:
У меня есть следующее Accounts_Users table
:
account_id | user_id
--------------------
1 | 60
2 | 60
3 | 60
1 | 50
3 | 50
3 | 40
И я хочу получить все, в user_id's
которых нет строк с определенными account_id
, например, если идентификатор учетной записи = 2, я хочу, чтобы результат был:
user_id
-------
50
40
Since user_id = 60 have record with account = 2.
Как я могу это сделать с помощью подзапросов или любым другим способом?
Ответ №1:
Вы используете подзапрос:
select distinct user_id
from Accounts_Users
where user_id not in (
select user_id from Accounts_Users where account_id = 2
)
Комментарии:
1. Работает идеально, спасибо!
Ответ №2:
Способ подзапроса:
select distinct user_id
from accounts_users
where user_id not in (
select user_id
from accounts_users
where account_id = 2)
Присоединяйтесь:
select distinct a.user_id
from accounts_users a
left join accounts_users b on b.user_id = a.user_id
and b.account_id = 2
where b.user_id is null