过去两天我一直试图让这个工作失败,希望我能找到一个可以提供帮助的人。
一个表包含主要事件,另一个表包含基于另一个表中主要事件的次要事件。例如,Table1包含ID,DATE和NUMBER(以及其他几个列)。这些记录按编号连续编号,每个ID和每天。
如果第一个表中的项目有一个或多个,则表2包含次要事件。它使用相同的信息但添加了SEQ列和NARR列(以及其他列)。下表中的一个条目可以有多个条目。
我试图找到一种方法来搜索table1中的每个事件,其中table2中至少有一条记录包含一个单词;在这个例子中“小部件”。基本上,基于上面的例子,我将被返回(我查看了不会被返回的记录)。
所以没有小事件或有轻微事件但没有任何表示“小部件”的项目会被显示。每个专业可以有超过一百个小记录。我想要它做的就是告诉我,如果没有一个小的记录,那么不会说“小部件”,或者它没有轻微的记录。
我希望这一切都有道理。如果有任何问题,请告诉我。非常感谢任何帮助。
答案 0 :(得分:0)
听起来你想要not exists
。像这样:
select t1.*
from table1 t1
where not exists (select 1
from table2 t2
where t2.id = t1.id and t2.number = t1.number and
t2.narr like '%widget%'
) or
not exists (select 1
from table2 t2
where t2.id = t1.id and t2.number = t1.number
);
答案 1 :(得分:0)
使用Not IN:
Select *
from table1 t1
where t1.number not in(select number from Table2 t2 where narr like'%widget%')