You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PostgreSQL查询指定家长所有子女读过的书籍?

解决方案:查询指定家长子女读过的书籍集合

这需求很明确,咱们直接用多表关联查询就能搞定,我给你写好实用的SQL语句,再拆解下细节逻辑:

核心查询语句

SELECT DISTINCT b.name AS book_name
FROM parent p
JOIN child c ON p.id = c.parent
JOIN book b ON c.id = b.readBy
WHERE p.name = 'Bob'; -- 把这里的字符串替换成你要查询的家长名称,比如'Mary'

逻辑拆解

  • 表关联逻辑:通过parent.id关联child.parent,再通过child.id关联book.readBy,把家长、子女、书籍的关联关系完整串起来,确保只获取有对应关系的有效记录
  • 去重处理:用DISTINCT关键字避免同一本书被多个子女阅读时重复出现在结果里,完美匹配“集合”的要求
  • 参数适配:实际业务场景中,可以把固定字符串'Bob'换成参数占位符(比如PostgreSQL里的$1),方便动态传入查询的家长名称

测试验证

  • 当传入参数'Bob'时,返回结果为:
    • Crime & Punishment
    • Goodnight Moon
    • The Singularity
    • One Fish Two Fish
  • 当传入参数'Mary'时,返回结果为:
    • Narnia

如果遇到某个家长没有子女,或者子女没读过任何书的情况,这个查询会返回空结果,完全符合预期。

内容的提问来源于stack exchange,提问作者Gershom Maes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:55:11