• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一ユーザーの重複削除)

同一ユーザーのコメント重複を避ける方法

このQ&Aのポイント
  • この質問では、MYSQLを使用してユーザー表とコメント表からユーザーのID、名前、評価、コメントを取得するSQLについての問題があります。
  • 特に、同一ユーザーへのコメントが複数回表示される可能性があるため、1件までの表示に制限する方法を知りたいとのことです。
  • 皆様のお力をお貸しいただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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;

mihune
質問者

お礼

無事できました!なるほど、そういう風にGROUPを使うのは全く考えていませんでした! ありがとうございました!

関連するQ&A