2017-03-24 15 views
1

ユーザーID 1(5)、2(1)、3(1)のメッセージがあります。私は、ユーザID 12、および3のメッセージを持っている各列に1行を取得する

$stmt = $dbh->prepare("SELECT * FROM messages WHERE user_id = :user_id ORDER BY id DESC"); 

こんにちは、ここに私のコードである(括弧は、ユーザID毎にメッセージの数を示しています)。ユーザーid1のような複数のメッセージを持つユーザーの場合は、ユーザーID 1からの最新のメッセージのみを選択し、5つのメッセージすべてではなく、ユーザーID 2および3から最新のメッセージを選択したいとします。どうやってやるの?ありがとう。

+0

私が間違っていないとすれば、同時にすべてのユーザーを選択し、それぞれの最後のメッセージのみを保持したいと考えています。そうですか?その場合、あなたの答えはすでにこの質問にあります:http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group – Zeke

答えて

1

"LIMIT 1"をクエリに追加すると、そのトリックが実行されます。

$stmt = $dbh->prepare("SELECT * FROM messages WHERE user_id = :user_id ORDER BY id DESC LIMIT 1"); 
+0

いいえ、それは何かに関係なく1つの行を選択するだけです – baileyJchoi

+0

通常それあなたが説明したことは –

+0

ですか? – marmeladze

関連する問題