gpt4 book ai didi

php - 如何根据一个项目有多个条目的相关表进行排序?

转载 作者:行者123 更新时间:2023-11-29 09:45:40 25 4
gpt4 key购买 nike

我有两张 table —— parent 和 child 。我想返回所有按 child 名字排序的 parent 。但由于 parent 可以有多个 child ,我似乎不知道如何排序。我需要获取按字母顺序排列名字(每个 parent )的 child ,并用它以某种方式进行排序。

基本上我需要做这些事情

  1. 对所有 parent 的所有 child 进行排序,并获取每个 child 的第一个 child (按字母顺序排列)。

例如,对于id:9的 parent ,他的 child 将是Alex Briggs(从children中选择*,其中parent_id = 9 order by asc LIMIT 1)

1. Alex Briggs (first one)
------------------------------
2. Ashley Briggs
3. Lucy Briggs
4. Lukas Briggs

And for parent with id: 3

1. Alex Skull (first one)
------------------------------
2. Don Skull
3. Erica Skull

然后返回按第一个 child 排序的所有 parent (按字母顺序)。

select * from parents order by ( their first child by alphabet .... ASC )

parent 表

| id |  fullname  |

1 Mark Dever
2 John Witney
3 Joey Skull
4 Abraham Lincon
5 Donald Trump
6 Britney Huston
7 Martin Lu
8 Eric Tada
9 Andy Briggs
10 Linda Briggs

子表

| id | parent_id |    fullname     |
1 9 Lukas Briggs
2 9 Alex Briggs
3 10 Ashley Briggs
4 10 Lucy Briggs
5 1 Mark Driscoll
6 2 Zack Witney
7 2 Victoria Witney
8 3 Alex Skull
9 3 Don Skull
10 3 Erica Skull

结果会是这样的

{
parent_id: 9,
fullname: Andy Briggs,
children: [
...Alex, Ashley, Lucy...
]
},

{
parent_id: 10,
fullname: Linda Briggs,
children: [
...Alex, Ashley, Lucy...
]
},

{
parent_id: 3,
fullname: Joey Skull,
children: [
...Alex, Don, Erica...
]
},

{
parent_id: 1,
fullname: Mark Dever,
children: [
...Mark...
]
},

{
parent_id: 2,
fullname: John Witney,
children: [
...Victoria, Zack...
]
},

最佳答案

由于您想订购 child 的名字,因此可以使用以下查询。

SELECT b.parent_id,a.fullname, GROUP_CONCAT(b.fullname ORDER BY b.fullname ASC) children
FROM parent a
JOIN children b
ON a.id=b.parent_id
GROUP BY b.parent_id,a.fullname;

关于php - 如何根据一个项目有多个条目的相关表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55730912/

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