我有一个表,表中有人名、他的父亲和母亲id以及他的年龄,我想编写一个查询,使其返回带有他/她最小孩子名字的父母的名字。这张table看起来像这样。
目前,我已经编写了返回所需结果的查询。 select a.Name, min(b.Age) from People a, People b where a.PersonID = b.Father group by a.Name union select a.Name, min(b.Age) from People a, People b where a.PersonID = b.Mother group by a.Name;
它的返回输出是这样的。
我想让它按这个顺序显示输出。 `|
13条答案
按热度按时间sczxawaw1#
--------| | Child1 | 9 | |
vxf3dgd42#
--------|`
我希望查询执行并返回第一行父亲姓名和最小的孩子,然后返回第一行母亲姓名和最小的孩子,然后返回第二行父亲姓名和最小的孩子,然后返回第二行母亲姓名和最小的孩子,依此类推。
谢谢您。。。
blpfk2vs3#
-|
2ul0zpep4#
-|
wqnecbli5#
-|
p1tboqfb6#
--------| | Adam | 30 | |
ukqbszuj7#
--------| | Eve | 30 | |
dvtswwa38#
--------| | Child2 | 9 | |
monwx1rj9#
-|
xzlaal3s10#
--------| | Name | min(b.Age) | |
dpiehjr411#
-|
sqougxex12#
写一个子查询并给出
min(b.Age)
然后使用多个别名order by
```select * from
(
select a.Name, min(b.Age) age from People a INNER JOIN People b ON a.PersonID = b.Father group by a.Name
union
select a.Name, min(b.Age) from People a INNER JOIN People b ON a.PersonID = b.Mother group by a.Name;
)t
order by name,age desc
c6ubokkw13#
-|