gpt4 book ai didi

php - 两个表和按列排序不在两个表中

转载 作者:行者123 更新时间:2023-11-29 12:36:22 25 4
gpt4 key购买 nike

我有两张 table ..一张用于玩家的 session ..另一张用于玩家的角色。我无法更改表记录数据的方式..所以我必须使用这些。最终,我试图创建一个“谁在线”列表,并需要一些帮助来弄清楚如何对所有内容进行排序。

帐户 session (如果此列表中存在一行,则帐户已登录)

----------------------
| accountid | charid |
----------------------
| 1001 | 2001 |
----------------------
| 1004 | 2006 |
----------------------
| 1002 | 2003 |
----------------------

角色(显示所有活跃或未活跃的角色)

------------------------------------
| charid | accountid | charname |
------------------------------------
| 1001 | 2001 | user1 |
------------------------------------
| 1002 | 2001 | user2 |
------------------------------------
| 1003 | 2002 | user3 |
------------------------------------
| 1004 | 2002 | user4 |
------------------------------------
| 1005 | 2003 | user5 |
------------------------------------
| 1006 | 2004 | user6 |
------------------------------------

我正在尝试通过在线订购,然后输入角色名称。所以根据这些表格..我想要这样的打印输出:

在线用户1用户3用户6

离线用户2用户4用户5

当它使用两个表并按第二个表字符名称排序时,我应该使用什么查询来打印这样的数据..以及它们是否在线 - 来自两个不同表的两种不同排序?

如果 session 表中有角色名称.. 这会让事情变得更容易.. 但我不认为我自己可以改变它。 :( 有什么帮助吗?

最佳答案

尝试这样的事情

SELECT      charname, IF(sessions.charid IS NULL, 'offline', 'online') as status
FROM characters
LEFT JOIN sessions
ON characters.charid=sessions.charid
AND characters.accountid=sessions.accountid
ORDER BY status DESC, charname ASC

这应该给你一个包含字符名和状态的两列表,首先是在线的。您也可以更喜欢 GROUP_CONCAT 函数

关于php - 两个表和按列排序不在两个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726144/

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