如何构建 SQL 查询来查找作为两个特定其他对象的父对象的对象?

2023-12-01

假设我有 2 个表,分别称为父表和子表。一个父母可以有 0 到多个孩子,一个孩子可以有 1 到多个父母。如何找到作为两个特定子元素的父元素的所有父元素。

例如,假设我有父母 [p_a, p_b, p_c, p_d] 和孩子: [c_a, c_b] 它们的结构如下:

  • p_a 有 c_a 作为孩子
  • p_b 有 c_b 作为孩子
  • p_c 有 c_a 和 c_b 作为子级
  • p_d没有孩子

如何制定查询来选择 p_c?

如果它们有一个结构,其中 p 有 [id, name],c 有 [id, name],并且有一个带有 [parent_id, child_id] 的 join_table。 (在这个例子中,我还为他们提供了顺序 ID,以使事情变得更容易)。

我尝试解决这个问题,得到了以下 SQL

SELECT p.*
FROM parent AS p
JOIN join_table AS j ON p.id = j.parent_id
JOIN children AS c ON j.child_id = c.id
WHERE c = 1
  OR c = 2

但显然这会选择 p_a 和 p_b 以及 p_c。我一直在看UNION操作员但似乎无法让它工作。

期待您的解答,感谢您的阅读。 麦克风

编辑:提到了我在示例中使用的 id 约定


您正在寻找存在两个特定子记录的父项。使用 EXISTS 子句:

SELECT *
FROM parent p
WHERE EXISTS (select * from join_table j where j.parent_id = p.id and j.child_id = 1)
  AND EXISTS (select * from join_table j where j.parent_id = p.id and j.child_id = 2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何构建 SQL 查询来查找作为两个特定其他对象的父对象的对象? 的相关文章

  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 在mysql中搜索“SanF”时获取旧金山的记录

    当我搜索 SanF 时获得 San Francisco 记录 SELECT FROM table WHERE col LIKE san Works SELECT FROM table WHERE col LIKE san F Works S
  • 在 MySQL 中将行转置为列

    如何在 MySQL 查询中将行转换为列 您可以将行变成a列与GROUP CONCAT 但您无法以任何自动方式转置整个结果集 您可以编写手动生成每一列的查询 也可以在应用程序中执行此操作 以下是有关编写复杂查询来模拟转置的教程 http ww
  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 数据库字段的标准长度列表

    我正在设计一个数据库表并问自己这个问题 名字字段应该有多长 有人有最常见字段 例如名字 姓氏和电子邮件地址 的合理长度列表吗 我刚刚查询了我的数据库 其中包含美国数百万客户 最大值名长度是 46 我选择 50 当然 其中只有 500 个超过
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • 使用MySQL计算单个表中借方和贷方的余额

    下面的 MySQL 表包含带有关联金额的借方或贷方 操作 如何选择具有非零 余额 的所有 CLIENT ID 我尝试将表连接到自身以计算所有借方和贷方总额 但有些东西无法正常工作 CLIENT ID ACTION TYPE ACTION A
  • Quartz.NET 设置 MisfireInstruction

    我正在使用 Quartz NET 在 C 中工作 并且在 CronTrigger 上设置失火指令时遇到问题 我正在运行安装了 Quartz DB 的 SQL 后端 我有以下代码 可以很好地创建作业和运行调度程序 IScheduler sch
  • 即使将“enable_seqscan”设置为关闭后,也未使用数组列上的 GIN 索引?

    根据推荐this https stackoverflow com questions 4058731 can postgresql index array columns comment10357041 4059785评论 我建立了一个 i
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • 如何在 join 语句中进行计数

    我有桌子post int post id varchar title text content和表comment int comment id int post id varchar content其中 post id 是外键引用表帖子 如
  • Oracle 数据库 12c 尝试连​​接时出错:网络适配器无法建立连接

    我第一次安装Oracle数据库12c 我正确地遵循了所有步骤并将其安装在 Windows 7 64 位上 但是当我单击 SQL Developer 并尝试创建新连接时 我输入了用户名和密码等信息 最后单击 测试 按钮 我得到了这个错误消息
  • 数据表 - 服务器端处理 - 数据库列合并

    我目前正在使用 DataTables 1 10 5 服务器端处理功能 http www datatables net examples data sources server side html http www datatables ne
  • Laravel Group By 和 Order By 不起作用

    我尝试制作一个Laravel 5 8项目 项目中的数据是这样的 id purch name prcvalue 1 10234 Nabila 100 2 10234 Nadeera 450 3 10234 Nabila 540 4 10234
  • 非规范化如何提高数据库性能?

    我听说过很多关于非规范化的内容 它是为了提高某些应用程序的性能而进行的 但我从来没有尝试过做任何相关的事情 所以 我只是好奇 规范化数据库中的哪些地方会使性能变差 或者换句话说 非规范化原则是什么 如果我需要提高性能 如何使用此技术 非规范
  • 消息 102,级别 15,状态 1,第 1 行“ ”附近的语法不正确

    我试图从临时表中查询 但不断收到此消息 Msg 102 Level 15 State 1 Line 1 Incorrect syntax near 有人能告诉我问题是什么吗 是因为要转换吗 查询是 select compid 2 conve
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何在动态查询中将行值连接到列名

    我正在开发一个允许配置问题和答案的应用程序 目前最多可以有 20 个答案 但也可能更少 我的结构如下 问题 ID FormId QuestionText AnswerField 1 1 Name Answer01 2 1 Address A
  • 哪个是识别关系或非识别关系中的子表?

    在表之间的识别和非识别关系的上下文中 MySQL 文档大量将表称为父表和子表 如何判断哪个表是父表 哪个表是子表 子表 A K A 弱实体 http en wikipedia org wiki Weak entity 是一个表 其主键属性d

随机推荐

  • 在登录时将多个身份验证提供商与 Firebase 链接

    我希望在用户登录应用程序时链接多个身份验证提供商 Firebase 文档提供了一种将新的身份验证提供程序与已登录的身份验证提供程序链接的方法 但我希望在登录 注册时进行链接 以便用户可以选择任何身份验证提供程序 而无需手动链接它们 对此有何
  • Python正则表达式匹配所有5位数字但不匹配更大的数字

    我正在尝试将分布在 HTML 网页中的 5 位优惠券代码进行字符串匹配 例如 53232 21032 40021等等 我可以处理任何 5 位数字符串的简单情况 0 9 5 尽管这也匹配 6 7 8 n 位数字 有人可以建议我如何修改这个正则
  • 重新运行不稳定的 JUnit 测试,以防失败

    我在 Jenkins 中有一个工作 A 用于我的自动化测试 如果另一个工作 B 构建成功 就会触发该测试 作业 A 运行多个测试 有些测试很不稳定 所以我想再次运行它们几次 让它们有机会通过 这样我的构建就不会不稳定 失败 有什么插件我可以
  • gdb 失败并出现“无法找到进程 ID 的 Mach 任务端口”错误

    我的应用程序运行良好 但 gdb 无法调试它并出现以下错误 gdb run Starting program path to app Unable to find Mach task port for process id 83767 os
  • BLE 连接后未调用 didDiscoverServices

    我正在使用需要验证的 BLE 设备 我使用的BLE代码如下 Pragma Bluetooth Methods func centralManagerDidUpdateState central CBCentralManager if cen
  • alamofire multipartformdata 使用 urlrequest

    我想使用Alamo火多部分表单数据使用请求 例如我使用上传API let profile self photoView imageView image let parameters String String homePageUrl web
  • 如何用CSS将图像放入div中?

    我希望将所有图像都放在 CSS 中 我知道的唯一方法是将它们作为背景图像放入 但这个解决方案的问题是你永远不能让 div 占据图像的大小 所以我的问题是 最好的方法是什么 div img src div in CSS 这个答案由Jaap d
  • R 中的等值线地图 - TIGER Shapefile 问题

    有一个关于使用 R 进行绘图的问题 特别是有关 R 中的分区统计图的问题 我有一个分配给某个区域的邮政编码数据集和一些相关数据 数据集是here 我的最终数据格式是 区域 ID 邮政编码 概率值 客户计数 区域概率和区域客户总数 我试图通过
  • CakePHP HABTM 表单提交

    我有两张桌子 questions and tags 具有 HABTM 关系 添加问题时 我希望能够为问题指定一个标签 这只是第一个标签 以后可以添加更多标签 标签是从他们的桌子上拉出来的 如何配置我的应用程序 以便在添加问题并指定标签时 连
  • Django 模型中的任意类型数据

    我有一个模型 比如说 Item 我想在其上存储任意数量的属性 例如标题 描述 发布日期 我希望它们不仅仅是字符串 还有 python 类型 所以字符串 布尔值 日期时间等 我在这里有什么选择 由于所有值的数据库类型相同 因此具有单独的名称
  • 对 MERN Stack 等 Web 和 API 解决方案进行身份验证和授权的最佳方式是什么?

    我正在尝试找到实施授权的最佳方法 此时 我唯一需要的是一个简单的免费帐户 但稍后我可能会包含使用 Stripe 等支付系统的 高级 帐户的用户角色 我已经开始阅读和尝试 Auth0 但后来发现了一些其他方法可以做到这一点 Passport
  • Word 非数字中的 rmarkdown 方程是 q‌u‌e‌s‌t‌i‌on 标记

    在 RStudio 中 rmarkdown 方程符号未在 Word 中重现 当我点击Knit Word时 A pi r 2 在Word文档中变成这样 2 html pdf都没有问题 None
  • 如何影响 Shopware 6.4.13.0 中的模板加载顺序

    这与Shopware 6 插件按什么顺序加载 当覆盖不同插件中的模板时 加载顺序很重要并且取决于插件安装日期 我相信在最近的 Shopware 版本中可以以更好的方式解决这个问题 这是如何运作的 您可以从上一个版本开始添加getTempla
  • php 会话在 Android 应用程序中被破坏

    我正在android中构建一个登录应用程序 其中我点击一个url 带有用户名和密码 直到该部分它工作正常 但之后每当我点击一个url 一旦用户通过身份验证 它什么都不返回 即错误消息 例如请先登录 然而 它在非常相似的 iPhone 应用程
  • 更新面板中的按钮正在执行完整的回发?

    我正在遵循一个如何使用此处的更新面板的简单示例 http www asp net Ajax Documentation Live tutorials IntroductionUpdatePanel aspx 在更新面板之外 我有另一个 ht
  • 在 R 中动态子集调查设计对象

    我试图弄清楚如何动态地对调查设计对象进行子集化 我已经构建了循环来发送字符串 但不知道如何删除引号 因此 R 将其读取为调用 我想循环遍历这样的一些 尽管这显然会中断 因为 SUBSET VARIABLE in 4 需要是一个调用而不是一个
  • Java字节码与不同版本的Java兼容吗?

    如果我使用 Java 5 代码将应用程序编译为字节码 生成的 class 文件能够在 Java 1 4 下运行吗 如果后者可以工作并且我正在尝试在我的 Java 1 4 应用程序中使用 Java 5 框架 是否有有什么我应该注意的吗 Nop
  • JSP形式的空字段是null还是“”?

    当表单传递到 servlet 时 是空字段 还是 null 例如 在一个表单中 您将名字作为字段 将姓氏作为字段院长 名字 姓那么它在 servlet 中注册为什么呢 提前致谢 Dean 简单 如果参数名称存在 但值不存在 则它为空 如果参
  • Billingservice Android - 无签名

    我遵循了以下很棒的教程 http blog blundell apps com simple inapp billing payment 我已经完成了教程中所说的所有内容 并且已将所有内容重新阅读了 3 遍 但我仍然没有收到签名intent
  • 如何构建 SQL 查询来查找作为两个特定其他对象的父对象的对象?

    假设我有 2 个表 分别称为父表和子表 一个父母可以有 0 到多个孩子 一个孩子可以有 1 到多个父母 如何找到作为两个特定子元素的父元素的所有父元素 例如 假设我有父母 p a p b p c p d 和孩子 c a c b 它们的结构如