У меня 7 таблиц, и каждая таблица будет содержать запись для определенного продукта. Я хочу проверить, содержит ли все 7 таблиц запись для определенного идентификатора (например: 4562). т.е. данные существуют или нет. Я использую SQL-сервер 2008. Пожалуйста, помогите мне написать запрос, чтобы проверить статус.
Попробуйте выполнить следующую команду (пример для трех таблиц T1, T2, T3). Он возвращает 1
если ID = 4562
существует во ВСЕХ таблицах и 0
если хотя бы одна таблица пропустила этот идентификатор.
SELECT
CASE WHEN
(
EXISTS(SELECT ID FROM T1 WHERE ID=4562)
AND EXISTS(SELECT ID FROM T2 WHERE ID=4562)
AND EXISTS(SELECT ID FROM T3 WHERE ID=4562)
)
THEN 1
ELSE 0
END AS [ID_Exists_in_all_tables]
Если вы выполняете базовое соединение, а не левое соединение, продукт будет отображаться только во всех таблицах.
select * from tab1
join tab2 on tab2.id = tab1.id
join tab3 on tab3.id = tab1.id
join tab4 on tab4.id = tab1.id
join tab5 on tab5.id = tab1.id
Where tab1.id = 1234
и т.д.