Подзапрос с несколькими операторами выбора - PullRequest
0 голосов
/ 21 мая 2011

для проверки подзапроса с оператором множественного выбора внутри условия «не в»

Например,

select id from tbl where 
id not in (select id from table1) and 
id not in (select id from table2) and
id not in (select id from table3)

вместо повторения того же идентификатора «не в», мне нужен подзапроскоторый проверит один выстрел из нескольких таблиц ..

просьба помочь ..

Ответы [ 3 ]

1 голос
/ 21 мая 2011

Ваш запрос лучше выражается как:

SELECT id 
FROM tbl t
LEFT JOIN table1 t1 on t1.id = t.id 
LEFT JOIN table2 t2 on t2.id = t.id 
LEFT JOIN table3 t3 on t3.id = t.id 
WHERE t1.id IS NULL AND t2.id IS NULL AND t3.id IS NULL
0 голосов
/ 12 апреля 2018

используйте объединение, как все это -> выберите f.FIRST_NAME из фермера f, где f.ID в (выберите v.ID из деревни v, где v.ID в (1,2) объединении всех, выберите s.ID из состояния sгде s.ID в (3,4))

0 голосов
/ 21 мая 2011

Вы можете использовать объединение, поэтому у вас есть только один in:

select  id
from    tbl 
where   id not in 
        (
        select id from table1
        union all select id from table2
        union all select id from table3
        )

Примечание: not in плохо работает с обнуляемыми столбцами, но я предполагаю, что id здесь не обнуляется.

...