gpt4 book ai didi

sql - 选择计数(*)或零

转载 作者:行者123 更新时间:2023-12-04 23:48:29 26 4
gpt4 key购买 nike

疲倦使我无法找到这个......假设您有以下表格:

家长

  • PARENT_ID(长)

  • child
  • CHILD_ID(长)
  • PARENT_ID (LONG, FK)
  • HAS_GRADUATED (BOOLEAN)

  • 我想要一个查询返回以下 (1,在 Oracle 的情况下)如果父级至少有一个 child 已经毕业,并且 (0,如果是 Oracle)如果 parent 没有已经毕业的 child , 或者根本没有 child :

    PARENT_ID................HAS_CHILDREN_WHO_GRADUATED

    5.................................1

    3.................................1

    6.................................0

    2.................................0



    在上面,parent_id=5 的父级可能有 >=1 个已经毕业的 child 。同样是 parent_id=3 的 parent。 parent_id=6 的 parent 要么根本没有 child ,要么有 child 但都没有毕业。

    对此的查询会是什么样的?

    最佳答案

    用:

       SELECT DISTINCT
    p.parent_id,
    CASE WHEN c.parent_id IS NULL THEN 0 ELSE 1 END
    FROM PARENT p
    LEFT JOIN CHILD c ON c.parent_id = p.parent_id
    AND c.has_graduated = 1

    您必须使用外部联接才能查看子表中没有支持记录的父值。

    关于sql - 选择计数(*)或零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3337351/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com