SQL-запрос для проверки наличия определенного товара в нескольких таблицах

1

У меня 7 таблиц, и каждая таблица будет содержать запись для определенного продукта. Я хочу проверить, содержит ли все 7 таблиц запись для определенного идентификатора (например: 4562). т.е. данные существуют или нет. Я использую SQL-сервер 2008. Пожалуйста, помогите мне написать запрос, чтобы проверить статус.

Теги:
sql-server-2008

2 ответа

0

Попробуйте выполнить следующую команду (пример для трех таблиц 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]

SQLFiddle demo

0

Если вы выполняете базовое соединение, а не левое соединение, продукт будет отображаться только во всех таблицах.

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

и т.д.

  • 0
    выбрать * из tab1 присоединиться к tab2 на tab2.id = tab1.id где tab2.id = '121'?
  • 0
    да извините, забыл пункт где
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню