2013-03-03 28 views
1

我想選擇一個表中的數據,以便它應該按照用戶標識對其進行分組,除了該列中的一個值和按日期時間和順序排序。 我遇到的問題是分組項目不按日期和時間以desc方式排序。 我的意思是分組的項目顯示在前一行。 我該怎麼做。 這就是我所做的。如何通過order by和desc按組來選擇?

SELECT * FROM `tbljobs` 
    GROUP BY user_id 
    UNION ALL 
    SELECT * FROM tbljobs 
    WHERE user_id = '1' 
    ORDER BY date_time DESC 
    LIMIT 20" 

其中'1'不應分組。

回答

0

謝謝frnds我爲你suggestions.finally我有我自己的解決方案嘗試了很多了。

(SELECT * FROM (select * from tbljobs order by date_time desc) as A where user_id <> '1' group by user_id) union all (select * from tbljobs where user_id=1) order by date_time desc 
1

您的ORDER BY只在第二條語句上執行。你必須用括號訂購整體結果:

(SELECT * 
FROM `tbljobs` 
GROUP BY user_id) 
UNION ALL 
(SELECT * 
FROM tbljobs 
WHERE user_id = '1') 
ORDER BY date_time DESC 
+0

感謝您的這一點,但我想我沒有正確解釋我的問題。 該列按照日期和時間以desc方式分組,但分組的用戶正在顯示舊作業。 – 2013-03-03 15:44:27