Попытка выяснить, как SQL возвращает список пользователей, когда что-то не находится в другой таблице. Я понимаю, что есть несколько способов сделать это, но какой предпочтительный метод? То, что у меня есть, - это мое предположение, которое не работает по мере необходимости.Запрос Oracle «NOT IN»
SELECT
n.nid,
n.title,
u.uid,
u.mail
FROM node n
JOIN field_data_field_status fs ON n.nid=fs.entity_id
JOIN flagging f ON n.nid=f.entity_id
JOIN users u ON f.uid=u.uid
JOIN profile p ON p.uid=u.uid
WHERE n.nid='891'
AND n.type='tournament'
AND fs.field_data_field_status_value='In_progress'
AND p.pid NOT IN (select entity_id FROM field_data_field_selected_players)";
В этом примере entity_id
от field_data_field_selected_players
будет равна p.pid
.
Поэтому я хочу, чтобы список пользователей, у которых нет p.pid
, находится в entity_id
от field_data_field_selected_players
.
'который не работает при необходимости', это ничего не говорит. Поработайте над этим. –
Было бы полезно объяснить, почему ваш запрос не работает, каковы ожидаемые результаты и что вы получили, а также некоторые тестовые данные и структуры таблиц были бы полезными. – Ollie