我有两张桌子
users
(用户ID,名称,位置,类型等)onlineusers
(用户ID,状态等)我想列出所有users
其中type = 'sometype'
并在asc中订购这些users
,但首先所有用户都存在于onlineusers
中表那些不在onlineusers
表中的那些。
我已经成功地将所有在线用户排除在外,但他们并没有按顺序排列。
这就是我试过的
SELECT * FROM users u
LEFT JOIN onlineusers o on u.userID = o.userID
where u.type = 'sometype'
order by IFNULL(o.userID,9999) desc;
由于
答案 0 :(得分:4)
SELECT *
FROM users u
LEFT JOIN onlineusers o on u.userID = o.userID
where u.type = 'sometype'
order by o.userID is null,
u.userID
对于不在线的用户, o.userID is null
会返回1
(true),如果是,则返回0
(false)。您可以按这两个值排序。