У меня есть следующие таблицы, таблица A и таблица B
Таблица A (пользователи)
userid name
--------------------
1 Sam
2 David
Таблица B (hobbylist)
hobbyid hobby
--------------------
1 singing
2 drawing
У меня есть таблица мостов (связь между многими)
Таблица C (user_hobby)
userid hobbyid
--------------------
1 1
2 2
1 2
Я хочу запросить условие, в котором я хочу узнать, у какого пользователя есть хобби, равное "рисованию" (hobbyid 2), но не "пению" (hobbyid 1). Как я могу достичь этого без подзапроса ?
Я пытался с помощью следующего запроса
SELECT *
FROM hobbylist
JOIN user_hobby AS uh
ON hobbylist.hobbyid = uh.hobbyid
JOIN users AS us
ON us.userid = uh.userid
WHERE hobby = "drawing"
AND hobby <> "singing"
Я все еще получаю обоих пользователей в результате запроса выше,Он должен был показывать только user = David.
Как этого добиться без использования подзапроса ?