0

PHP/MySQL でソーシャル ネットワーキング サイトを作成しようとしています。私は現在、ステータスの更新とステータスのシステムに関するコメントを開発しています。私は自分のすべてのステータスと特定のステータスに関するコメントを表示しようとしています。そのために、 と の 2 つのテーブルがcommentありuser_statusます。

このMySQLクエリを使用しました。

      SELECT * FROM user_status LEFT JOIN 
      comment ON id_status = comment.status_id
      WHERE sender_id = '$id2'
      OR receive_id = '$id2'

     /* $id2 is my id */

ステータスと 1 つのコメントを正常に表示しました。しかし問題は、コメントの数が複数の場合、ステータスが複数回表示されることです。同じステータスがどれだけ表示されるかは、特定のステータスで利用可能なコメントの量によって異なります。しかし、同じステータスを一度だけ表示し、特定のステータスに複数のコメント (利用可能な場合) を表示できるようにしたいと考えています。

4

2 に答える 2

2

これは PHP の問題というよりも、SQL の結合がどのように機能するかについての混乱です。

本当に必要なのは結合ではなく、2 つのテーブルからの別個のレコード セットであるかのように思えます。SQL スキルがもう少し上達するまでは、comment と user_status に対してそれぞれ 1 つずつ、2 つのクエリを作成して単純化することを検討してください。を使用するのではなく、関心のある特定のフィールドのみを要求することも検討してくださいSELECT *

単一のクエリでこれを追求したい場合に備えて、さまざまな SQL 結合の視覚的な説明を次に示します。

于 2012-08-15T11:30:21.440 に答える
0

クエリからの生の結果を表示しているのではなく、それらを html ページにパイプして表示していると仮定します。テキストボックスに最新のステータスのみを表示します。次に、薄いテーブルを表示するか、コメントの順序付きリストをリストします。

あなたの質問は正しいです。

于 2012-08-15T11:35:53.803 に答える