Мне нужно сделать запрос со следующими критериями. У меня есть table1
, table2
и table3
. Мне нужно проверить, что каждый из table2
и table3
являются подмножествами table1
.SQL Server: Регистрация в нескольких таблицах
Все содержание table1
должно присутствовать в table2
и/или table3
. Все содержимое table1
может присутствовать только в table2
, а иногда все содержимое table1
должно присутствовать только в table3
. В других случаях table1
может быть содержанием table2
и table3
. Не все в table2
должно соответствовать тому, что находится в table3
.
Я хочу, чтобы запрос возвращал то, что присутствует в table1
, а не в table2
и не в table3
. Кроме того, он должен вернуть то, что присутствует в table2
и table3
, а не в table1
.
Я пробовал ниже, но он не работает. Вы хоть представляете, как это можно решить?
Select
dr1.col1, dr1.col2
from
table1 dr1
left outer join
(Select c.col1, col2 from table2) dr2 on dr1.col1 = dr2.col1
and dr1.col2 = dr2.col2
left outer join
(Select col1, col2, col3 from tabl3) dr3 on dr1.col1 = dr3.col1
and dr1.col2 = dr3.col2
and dr1.col3 = dr3.col3
where
dr1.col1 is NULL or dr2.col2 is NULL
Это где положение не совсем выглядеть правильно, проверяя DR1 и DR2 - вместо d2 и DR3 - и если его в DR1, но не в любом из dr2 или dr3 - вы бы проверяли dr2 AND dr3, а не OR. – Andrew