多くのテーブルがあり、大きなクエリを実行しています(約5〜7個の左結合)。このように見えます
SELECT *, t.id
GROUP_CONCAT(field SEPARATOR '|') AS fields,
GROUP_CONCAT(other SEPARATOR '|') AS others
FROM table t
LEFT JOIN tablefields tf ON t.id = tf.user_id
LEFT JOIN tableothers to ON t.id = to.user_id
GROUP BY t.id
ここに問題があります。すべてのフィールドが適切に連結されていますが、結合されたテーブルの行が1つしかない場合でも、2つは「value | value | value | value」(15〜17回)のようになります。
私は何を間違えますか?
PS
1つのフィールドがsection_idで、他のフィールドがnoteであるため、DISTINCTを使用できません。注意は似ているかもしれませんが、section_idは一意です。
PPS
https://gist.github.com/3098105
クエリ結果の一部を見てください。
mysql> SELECT * FROM tablename;
+----+---------+------------+-----------+
| id | user_id | section_id | note_data |
+----+---------+------------+-----------+
| 1 | 1331 | UserVideo | test |
| 2 | 1331 | UserNCAA | test |
+----+---------+------------+-----------+
2 rows in set (0.00 sec)