我有USER表(主表)和ONLINE表(与USER有一对一关系的refrence表),如下所示: 我在桌子上使用左连接
我在ONLINE Table的“is_logged”字段中应用order。(ASC) 我得到了订单中的记录,但是所有记录都是首先出现在ONLINE表中的。 我想要用户表顺序的所有记录,但这些记录应该是最后的,在线表中不存在
答案 0 :(得分:3)
检查一下。
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
答案 1 :(得分:1)
当它为null时,给它一个大于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