2016-11-02 4 views
0

私のmysqlのクエリの問題の例である:照会データベースは、ここに

Table name: messaging 
Id ad_id sender_id receiver_id message 
1 2  5   1    message1 
2 2  5   1    message2 
3 2  5   1    message3 
4 8  7   3    message4 
5 2  4   2    message5 

は、今私は、MySQLのクエリを実行したいと考えている次の形式で出力するであろう結果:

Id ad_id sender_id receiver_id message 
3 2  5   1    message3 
4 8  7   3    message4 
5 2  4   2    message5 

注:ad_id、sender_id、およびreceiver_idに同じ値を持つ複数の行は、最後の行のみを出力する必要があります。

私は、同様の出力を達成するための援助を感謝します。前もって感謝します。

+0

すでに試したコードを共有できますか? – RST

+0

*最後の行*は、タイムスタンプや日付の列がない場合は意味がありません。 –

+0

はい私は列date_sentとdate_readを持っていますが、ここで私は今試してみましたが、エラーが発生しました:SELECT MAX(Id)としてID、ad_id、sender_id、receiver_idメッセージングGROUP BY ad_id、sender_id、receiver_id –

答えて

-1

あなたはagroupにしたい3つの列でGROUP BYを使用し、各グループの最後に挿入されたレコードを取得するためにMAXを使用する必要があります(Idは自動インクリメントであると仮定した場合)

SELECT MAX(Id) as Id, ad_id, sender_id, receiver_id FROM messaging GROUP BY ad_id, sender_id, receiver_id; 
+0

あなたの助けに感謝しますが、このコードを試しましたが、次のエラーが表示されます:警告:mysqli_num_rows()はパラメータ1をmysqli_result、 ... –

+0

私のSQLコードをデータベース上で直接実行します(phpmyadminを使用している場合)。それはあなたが望むように動作します。あなたのPHPコードに関連する別の問題を受けているという警告。 –

+0

ありがとう、本当に感謝します。私はphpmyadmin内の問題を検出することができましたが、私のPHPコード内で解決しようとしています。 –

0

私はshortlistingを提案データを抽出する前に正しいID、特に列が多い場合

select Id, ad_id, sender_id, receiver_id, message 
from messaging 
where id in (select max(id) 
     from messaging 
     group by ad_id, sender_id, receiver_id) 
関連する問題