-1

我有以下 3 张桌子。如果在表 2 或表 3 中找到匹配记录,我需要从表 1 中选择一个查询。

表 1:RecordID、GroupID、名称

表2:RecordID(即Table1.RecordID)、SubID、AFlag

表3:GroupID(即Table1.GroupID)、SubID、AFlag

4

3 回答 3

1

布莱恩发帖这么快!或者...

select * 
from table1
where (recordid in (select recordid from table2)  ) 
OR (recordid in (select recordid from table3) ) 
于 2013-05-16T19:54:35.040 回答
1

这相当简单,只需使用左连接并匹配最终连接表的 ID

SELECT t1.* FROM table1 t2
    LEFT JOIN table2 t2 ON t1.RecordID = t2.RecordID
    LEFT JOIN table3 t3 ON t1.GroupID = t3.GroupID
    WHERE t2.SubID IS NOT NULL OR t3.SubID IS NOT NULL

这应该让你更接近你的最终目标

于 2013-05-16T19:52:55.180 回答
0

我认为您的基本查询看起来有点像这样:

SELECT *
    FROM Table1 T1
    WHERE EXISTS ( SELECT 1 FROM Table2 T2 WHERE T1.RecordId = T2.RecordId )
        OR EXISTS ( SELECT 1 FROM Table3 T3 WHERE T1.GroupId = T3.GroupId )
于 2013-05-16T19:54:51.487 回答