- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一ユーザーの重複削除)
同一ユーザーのコメント重複を避ける方法
このQ&Aのポイント
- この質問では、MYSQLを使用してユーザー表とコメント表からユーザーのID、名前、評価、コメントを取得するSQLについての問題があります。
- 特に、同一ユーザーへのコメントが複数回表示される可能性があるため、1件までの表示に制限する方法を知りたいとのことです。
- 皆様のお力をお貸しいただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
そういう場合は、サブクエリ(副問い合わせ)を使うのが一般的かと思います。 MySQLのバージョンが、4.1以上ならばサブクエリが使えます。 書き方としては、 まず、comment表を、u_idごとにグルーピングして、それぞれのc_timeの最大値を出し、これを、C1とします。 あとは、C1と、もうひとつcomment表を別名であらわしたC2とを、 u_idと、c_timeの最大値でつなげて、C2から、コメント、レーティングなどをひっぱってきます。 これを具体的に書くと次のようになります(たぶん) SELECT U.u_id, U.u_name,C2.c_rating, C2.c_comment FROM comment C2, user U, (SELECT u_id, MAX(c_time) AS max_c_time FROM comment WHERE c_comment IS NOT NULL AND c_comment <> "" GROUP BY u_id) C1 WHERE C1.u_id = C2.u_id AND C1.max_c_time = C2.c_time AND C2.u_id = U.u_id ORDER BY C2.c_time desc LIMIT 5;
お礼
無事できました!なるほど、そういう風にGROUPを使うのは全く考えていませんでした! ありがとうございました!