1

テーブル内のデータを選択して、その列の1つの値を除いてユーザーIDでグループ化し、日時と説明で並べ替えます。私が得ている問題は、グループ化されたアイテムが日時と説明の方法で注文されていないことです。グループ化されたアイテムが前の行を表示していることを意味します。どうやってやるの。これは私がやったことです。

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

ここで、「1」はグループ化しないでください。

4

2 に答える 2

1

ORDER BYは、2番目のステートメントでのみ実行されます。結果全体を並べ替えるには、中かっこを使用する必要があります。

(SELECT *
FROM `tbljobs`
GROUP BY user_id)
UNION ALL 
(SELECT *
FROM tbljobs
WHERE user_id = '1')
ORDER BY date_time DESC
于 2013-03-03T14:16:04.350 に答える
0

友達に提案してくれてありがとう。最後に、私は多くの努力の末、自分でソリューションを作成しました。

(
 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
于 2013-03-04T05:54:27.493 に答える