我有 USER 表(主表)和 ONLINE 表(与 USER 具有一对一关系的参考表),如下所示:我在表上使用了左连接
我在 ONLINE 表的“is_logged”字段上应用 order by。(ASC)我得到了按顺序排列的记录,但所有记录都排在第一位,而 ONLINE 表中不存在这些记录。我想要用户表顺序的所有记录,但那些记录应该排在最后,而在线表中不存在
我有 USER 表(主表)和 ONLINE 表(与 USER 具有一对一关系的参考表),如下所示:我在表上使用了左连接
我在 ONLINE 表的“is_logged”字段上应用 order by。(ASC)我得到了按顺序排列的记录,但所有记录都排在第一位,而 ONLINE 表中不存在这些记录。我想要用户表顺序的所有记录,但那些记录应该排在最后,而在线表中不存在
看一下这个。
SELECT o.*
FROM users u
LEFT JOIN online
o ON u.id = o.user_id
ORDER BY COALESCE(is_logged, -1) DESC, user_id ASC
为空时给它一个大于 0 和 1 的值。
SELECT
u.*, IFNULL(o.is_logged, 99) as is_logged
FROM
user u
LEFT JOIN online o ON u.id = o.user_id
ORDER BY is_logged ASC