2012-08-09 37 views
0

我具有用戶表(主表)和在線表格(refrence表與用戶一對一的關係)象下面這樣: 我用左連接表上 enter image description here如何使用左邊的加入命令?

我通過運用令「is_logged」場(ASC) 我在訂單中得到了記錄,但是所有記錄都是首先出現在ONLINE表中的。 我想要所有的用戶表順序記錄,但這些記錄應該是最後一個不存在於在線表中的

回答

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 

SQLFiddle Demo

+0

謝謝John Totet Woo,那對我很合適 – vin 2012-08-09 17:54:53

+0

youare歡迎vin :) – 2012-08-09 22:05:34

1

當它爲空時,給它一個大於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 
+0

感謝Xdazz,這對我來說是有用的。 – vin 2012-08-09 17:54:29