gpt4 book ai didi

mysql - 我可以根据 MySql 中另一个表上的子对象数量对 SELECT 语句进行排序吗?

转载 作者:行者123 更新时间:2023-11-29 05:48:41 24 4
gpt4 key购买 nike

假设我有一个名为 Parent 的表和另一个名为 Child 的表。 Child 表有一个 parent_id 和一个描述。我想做一个查询,我们在其中获取 Parent 对象并按描述对它们进行排序。但是,如果有 2 个以上的子对象,我希望它们位于其他对象之后。这可以用 case 语句实现吗?

如果有任何帮助,我正在将 mysqli 与 PHP 结合使用。

最佳答案

使用子查询收集计数,然后从中选择:

select columns
from (
select p.columns, count(c.parent_id) as childcount
from parent p
join child c on c.parent_id = p.id
group by p.columns
) subquery
order by childcount > 2, description

这里的技巧是 childcount > 2 如果为假则在 MySQL 中为 0 如果为真则为 1,所以超过 2 个 child 的 parent 将出现在所有 2 或更少的 parent 之后,并且在结果的每个括号内, parent 按描述排序。

请注意,columns 表示您希望从查询返回的 parent 中的列列表。

关于mysql - 我可以根据 MySql 中另一个表上的子对象数量对 SELECT 语句进行排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979875/

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