gpt4 book ai didi

mysql - 如何按另一个表中的值对值进行排序

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

我有一个由两个表组成的数据库,分别称为“ friend ”和“数据”。它们的外观如下:

好友表:

+-----------------------------------+
| UUID (varchar) | FRIEND (varchar) |
+-----------------------------------+
| Alpha | Beta |
+-----------------------------------+
| Zulu | Zara |
+-----------------------------------+
| Gamma | Alpha |
+-----------------------------------+
| Charlie | Alpha |
+-----------------------------------+

数据表(不包含所有好友,只包含服务器上在线的好友):

+----------------+
| UUID | SERVER |
+----------------+
| Alpha | lobby |
+----------------+
| Gamma | lobby |
+----------------+
| Charlie| lobby |
+----------------+

那么,我如何获得这样的结果集:

+----------------+
| FRIEND| SERVER |
+----------------+
| Gamma | lobby |
+----------------+
| Charlie| lobby |
+----------------+
| Beta | (null)|
+----------------+

基本上,这就是“Alpha”的所有 friend 以及它们所在的服务器。服务器上的好友应该放在第一位。它应该由服务器排序!

谢谢!

最佳答案

诀窍是获得“Alpha”的 friend 。您可以使用union all来完成此操作。剩下的只是一个连接:

select a.friend, s.server
from ((select friend from friends where uuid = 'Alpha'
) union all
(select uuid from friends where friend = 'Alpha'
)
) a left join
servers s
on a.friend = s.uuid
order by (s.uuid is null) desc;

关于mysql - 如何按另一个表中的值对值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963179/

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