【PHP】下らねぇ質問はここに書き込みやがれ 27
■ このスレッドは過去ログ倉庫に格納されています
0145144(続き)
2006/08/25(金) 13:00:30ID:r3tiUVo5SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
ORDER BY `timestamp` DESC
だと、
「no」が「9,8,6,4,1」のレコードが得られます。
ここまでは想定通りです。
ここで、「uidが重複しているレコードのうち、timestampの値が小さいほう」を除外すれば、
抽出したくないレコード(「no」が「8と4」のレコード)を含まず、
当初の目的である、「no」が「1,6,9」のレコード だけが得られるはずです(…よね?)
そこで、
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
GROUP BY `uid`
ORDER BY `timestamp` DESC
と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「4と1」のレコードでした。
「no」が「8と4」のレコードを得るのではなく、
逆にこれを除外して「no」が「9」と「6」と「1」のレコードを得たいと
思っていたのに、まったく正反対の結果になってしまいます。
正しい結果を得るには、どういうSQL文を発行したら良いのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています