当前位置: 首页 > 面试题库 >

如果所有孩子均符合条件,则选择父母

贺文彬
2023-03-14
问题内容

我有这样设置的表:

Parent
------
id, ...

Child
-----
id, parent_id, x, y

如果Child中包含给定parent_id的 所有 行均符合涉及x和y的条件(在我的情况下,x =
y),我想找到Parents或不同的parent_id 。

例如:

Parent
------
id
 1
 2
 3

Child
id, parent_id, x, y
1,      1,     2, 3
2,      1,     3, 4
3,      2,     5, 5
4,      2,     6, 7
5,      3,     8, 8
6,      3,     9, 9

将会得到3。当前,我有一个查询,查找 任何子级 都符合条件的parent_ids
。然后,我用它来检索那些记录,并在所有子级都符合条件的情况下在代码中检查它们。通过示例数据,我得到parent_id
2和3,获得所有子代的两个父记录,然后求值。如果可能,我想通过一个查询来执行此操作。


问题答案:

您可以使用 NOT EXISTS

SELECT id 
FROM Parent p
WHERE NOT EXISTS
(
   SELECT 1 FROM Child c
   WHERE c.parent_Id = p.id
   AND c.x <> c.y
)

编辑:这是sql小提琴:http ://sqlfiddle.com/#!
3/20128/1/0



 类似资料:
  • 问题内容: 我对SQL还是很陌生,尽管我可以编写大多数查询,但是我对它却一无所知。我想通过一个可以使用JPA执行的查询来实现这一点。 我只想从HOLD中选择每行的READY = 1和RULE_ID在的MISC_ID(在ENABLED = 0的RULE_IDs中)。在上面的示例中,查询应该返回MISC_ID = {1},因为HOLD_ID 1、2和3都具有READY = 1,并且RULE 1、2和3

  • 我尝试了第二个查询的子表的-join,但它没有给出理想的结果。 我的第一个查询工作良好,我得到了正确的父列表,我的问题是没有得到所有的孩子当我运行第二个查询。如何解决这个问题?

  • 问题内容: 最初,我一直在尝试获取父母的名单以及每个父母的一个最近的孩子。我已经知道如何使用以下查询 但是问题是,结果不包括没有孩子的父母。添加也无济于事。所以我想我可以对所有没有孩子的父母进行查询,然后将这两个查询合并为一个查询。但是我在建立这样的查询时遇到了麻烦。将不胜感激任何建议。 问题答案: 这是您的查询:

  • 问题内容: 如果我想实现一些可以通过两种方式实现的条件代码。那么哪种方式更好的是条件运算符?:或if..then..else ?? 问题答案: 这取决于。通常,您希望活动的主要流程在代码的结构中表示。如果算法的关键是变量已初始化,那么最好的解决方案是使用条件运算符: 如果决策是了解正在发生的事情的关键问题,那么您将首选。实际上,这意味着当两者都可行时,您将使用。关键是“合理” —如果您发现在子表达

  • 问题内容: 我有以下标记: 我希望将样式设置为“一个”和“三个”。 但是,标记也可以是: 我尝试使用以下CSS: 但是,正如预期的那样,这是每个样式的第一个子元素的样式。 如何更改CSS,以便可以定位属于的第1个和第3个? 问题答案: 您不能仅凭CSS选择器来做到这一点。和兄弟组合器仅限于共享其父代的子代/兄弟姐妹,正如其名称所暗示的那样,并且CSS选择器无法解释父子结构的这种变化,也没有类似选择

  • 实现一对多关系并选择父项和子项我有一个关系,我想进行查询(选择*) 文件夹。JAVA 作者。JAVA 我的请求: 我得到了这样的结果: 我的代码有什么问题?什么是问题,当我执行查询我得到了这个结果...我想得到这个结果