我有一个表,其中有多个条目对应一个FK。我想找出没有某些条目的FK值,例如
我的表有以下条目。
PK----------------FK-----------------Column entries 1----------------100-----------------ab1 2----------------100-----------------ab2 3----------------100-----------------ab4 4----------------200-----------------ab1 5----------------200-----------------ab2 6----------------200-----------------ab3 7----------------300-----------------ab1 8----------------300-----------------ab2 9----------------300-----------------ab3 10---------------300-----------------ab4
现在,我想从这个表中过滤所有没有ab3或ab4的FK。当然,我期望不同的值,即在这种情况下,结果将是FK=100和200。
我使用的查询是
select distinct(FK)
from table1
where column_entries != 'ab3'
or column_entries != 'ab4';
当然,此查询不会获取所需的结果。
在HAVING中,可以将GROUP BY与条件聚合一起使用:
SELECT FK
FROM table1
GROUP BY FK
HAVING COUNT(CASE column_entries WHEN 'ab3' THEN 1 END) = 0
OR COUNT(CASE column_entries WHEN 'ab4' THEN 1 END) = 0
;
两个条件聚合分别计数'ab3'
和'ab4'
条目。如果结果都大于0,则相应的FK
同时具有'ab3'
和'ab4'
,因此不会返回。如果至少一个计数的计算结果为0,则FK
被认为满足要求。
如果我以正确的方式回答您的问题,下面的脚本可能是解决方案。
SELECT DISTINCT(TableForeignKey)
FROM Test
WHERE TableForeignKey NOT IN (
SELECT T1.TableForeignKey
FROM Test T1 INNER JOIN Test T2 ON T1.TableForeignKey = T2.TableForeignKey
WHERE T1.TableEntry = 'ab3' AND T2.TableEntry = 'ab4')
SQLFiddle 演示
尝试以下操作:-
select distinct fk_col from table1
minus
(select distinct fk_col from table1 where col_entry='ab3'
intersect
select distinct fk_col from table1 where col_entry='ab4')
这将显示所有没有“ab3”和“ab4”的FK。即 100 和 200 在您的情况下
问题内容: 所以这是我的设置,我有2个具有以下(简化)模式的旧表和新表 我正在寻找一种SQL查询,该查询返回以下内容,但在1个查询中包含4列,而不是每个2列包含2个查询 因此,我理想的结果集将包含4列: 谢谢! 问题答案: 您是否尝试过JOIN语句:
问题内容: 有这张桌子 和这个 我如何从表“项目”中选择所有行并显示字段“已删除”,即使在给定用户ID的情况下,即使“ MyList”中不存在itemID? 查询结果示例: 什么是查询,以便我可以得到该结果? 谢谢 问题答案: 我不确定这是否是最好的方法,但它会返回我一直在寻找的内容:
我有两张调查表。表1包含以下字段发送的调查:SID、SalesRep、位置。表2包含用以下字段返回的调查结果:RID、SID、QID、AID。 在表1中,SID是唯一的,没有重复项。在表2中,RID是唯一的,并且表示被回答的每个问题和答案。表2中的SID代表了回答问题的调查。因此,如果调查中回答了10个问题,表2中将有10行具有相同的SID。 我需要做的是找出每个销售人员已经发送了多少份调查,采取
问题内容: 我的SQL Server数据库中有两个表。第一个是,第二个是。两个表中都有一列。 现在,我想从两个表中选择一个特定的值。 这就是我在做的 但是我的查询给出了错误。 问题答案:
我刚开始冬眠。我有两张桌子,有一对多的关系。有两个表格: 这是一个父类,它与图像表有一对多关系 现在我想使用父类的id(即:pashminaId)从类中选择一个 如: 选择IMAGE_NAMETBL_IMAGEPASHMINA_ID='some_digit'; 我怎么能在图像类中传递pashminaId,因为没有它只有一个父类的对象创建。 那么,我如何在Hibernate中实现这一点? 谢谢!希望
问题内容: 我有一个包含字段()的表()。我想从中选择每一行,以及表中该字段与相同的行数。 如何在SQL中完成? (像这样的伪SQL: ) 问题答案: