У меня есть две таблицы:
пользователи
id | admin_id | name
-----------------------
1 | 10 | a
2 | 10 | b
3 | 15 | c
4 | 10 | d
5 | 10 | e
6 | 10 | f
статус
id | user_id | status
-----------------------
1 | 2 | error
2 | 2 | success
3 | 2 | error
4 | 4 | success
5 | 6 | error
сейчас я пытаюсь получить всех пользователей admin_id 10 которые не имеют записей в таблице status и пользователи, у которых нет записей с status success в таблице состояния с помощью предложения group by.Мои ожидаемые результаты:
Результат:
id | admin_id | name | status
------------------------------------
1 | 10 | a | null
5 | 10 | e | null
6 | 10 | f | error
Таким образом, согласно ожидаемым результатам, запрос должен игнорировать user_id 2,4, потому что эти два имеют статус успеха в таблице состояния.Прямо сейчас я пытаюсь сделать запрос следующим образом:
SELECT
users.*,
status.status
FROM
users
LEFT JOIN
status ON users.id = status.user_id
WHERE
users.admin_id = 10 AND status.status != "success"
GROUP BY
users.id
Это может быть сделано подзапросом, но мое требование состоит в том, чтобы сделать это с одним запросом и без использования подзапроса.
Есть ли способ сделать это?
Спасибо!