用于检查多个表中特定产品是否存在的SQL查询

时间:2014-05-19 09:54:36

标签: c# sql-server-2008

我有7个表,每个表都包含特定产品的条目。我想检查所有7个表是否包含特定ID的条目(例如:4562)。即数据存在与否。我正在使用SQL Server 2008.Please帮我写一个查询来检查状态。

2 个答案:

答案 0 :(得分: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

等等

答案 1 :(得分:0)

尝试以下命令(3个表T1,T2,T3的示例)。如果所有表中都存在1,则返回ID = 4562;如果至少有一个表错过此ID,则返回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