gpt4 book ai didi

mysql - 选择所有 child 都满足条件的 self 关系中的行

转载 作者:行者123 更新时间:2023-12-01 00:13:16 24 4
gpt4 key购买 nike

我正在使用具有以下字段的单个表(称为 documents):idparent_idstatusparent_id 字段引用同一张表中的id 字段。 status 字段的类型为 ENUM('submitted', 'accepted', 'rejected')

我想选择所有 documents no children where status = 'accepted'

我的第一次尝试是这样的:

SELECT DISTINCT `documents`.*
FROM (`documents`)
LEFT OUTER JOIN `documents` children_documents
ON `documents`.`id` = `children_documents`.`parent_id`
WHERE `children_documents`.`id` IS NULL
OR `children_documents`.`status` != 'accepted'

问题在于,仍会选择包含已接受和未接受子项的文档。不应选择包含任何已接受子项的文档。

我感觉 GROUP BY 可能是我的 friend ,但我不知道如何使用它来获得预期的结果。

最佳答案

SELECT DISTINCT `documents`.*
FROM (`documents`)
LEFT OUTER JOIN `documents` children_documents
ON `documents`.`id` = `children_documents`.`parent_id`
AND `children_documents`.`status` = 'accepted'
WHERE `children_documents`.`parent_id` IS NULL

关于mysql - 选择所有 child 都满足条件的 self 关系中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12082353/

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