-1

いくつかのmysqlクエリを作成し、日付ごとに5つの画像の順序をクエリしますが、5つの異なるアップロードユーザーからです。

mysqlデータテーブル構造:id, user_id, image, text, date

SELECT *
FROM mytable
WHERE image!=''
GROUP BY user_id
ORDER BY date DESC 
LIMIT 5

しかし、これGROUP BYは常にuser_id以前のアップロード画像を取得してから作成する原因になりORDER BY date DESCます。5人の異なるユーザーによってアップロードされた新しい5つの画像が必要です。多分いくつかを使用する必要がありますUNION、助けを求めてください、ありがとう。

4

2 に答える 2

0

このクエリを試してください

SELECT *
FROM temp
WHERE image!=''
GROUP BY user_id
HAVING date=max(date)
LIMIT 5

よくわかりませんmysqlが、これはで機能しsybaseます。

于 2013-02-11T09:29:55.950 に答える
0

MAXでINNERJOINを使用する

SELECT 
  mytable.* 
FROM
  mytable 
  INNER JOIN 
    (SELECT MAX(id) AS ID, id FROM mytable GROUP BY user_id) AS m 
    ON m.id = mytable.id 
WHERE image != '' 
GROUP BY user_id 
ORDER BY DATE DESC 
LIMIT 5 

これにより、max(latest)idがフェッチされ、外部のselectに統合されます。

于 2013-02-11T09:37:43.173 に答える