GROUP_CONCAT が重複した値を生成します: LEFT JOIN を追加した後の問題
質問:
ユーザー データ、タグ、レピュテーションを取得する既存のクエリにカテゴリ LEFT JOIN を追加した後、ユーザーの GROUP_CONCAT 結果に重複した値が含まれています。
問題の説明:
元のクエリは、各ユーザーに関連付けられた最初の 2 つのタグを正しく取得します。ただし、カテゴリ LEFT JOIN を追加した後、ラベルとカテゴリの結果に重複がいくつかあります。期待される出力は、最初の 2 つのカテゴリがユーザーごとに一意である必要があることです。
解決策:
この問題は、LEFT JOIN によって各 user_id がタグとカテゴリの複数の組み合わせで結合され、GROUP BY の後に行が重複するために発生します。この問題を解決するには、いくつかの方法を使用できます:
累積 LEFT JOIN メソッド:
対称内部結合方法:
スカラーサブクエリメソッド:
DISTINCT GROUP_CONCAT を使用した LEFT JOIN メソッドの変更:
アプローチの選択は、クエリ プランの効率、データ重複レベル、タイミングなどのエンジニアリングのトレードオフに依存する場合があります。
以上がLEFT JOIN を追加すると GROUP_CONCAT の結果が重複するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。