1
を使用して参加する:データベース内でこれらの情報によってMySQLの重複値の私は、このスキーマがあるとしましょうGROUP_CONCAT
_________ _________
| Table 1 | | Table 2 |
|---------| _______ ________|---------|
| id_a |___ | link1 | | | id_b |
| name | | |-------| | | info |
|_________| |_____| id_a |___| | data |
| | id_b | |_________|
| |_______|
|
| _______
|______________| link2 |_______
|-------| |
| id_a | | _________
| id_c | |__| Table 3 |
|_______| |---------|
| id_c |
| email |
|_________|
:
表1
_____________
| id_a | name |
|------|------|
| 1 | foo |
|______|______|
表2
_____________________
| id_b | info | data |
|------|------|-------|
| 1 | bar | corge |
| 2 | kux | corge |
| 3 | fred | quux |
|______|______|_______|
表3
_________________
| id_c | email |
|------|----------|
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
| 4 | [email protected] |
| 5 | [email protected] |
|______|__________|
リンク1
_____________
| id_a | id_b |
|------|------|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
|______|______|
リンク2
_____________
| id_a | id_c |
|------|------|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
|______|______|
私は私が望む件のデータを取得しようとすると、私は、この構文を使用する:
SELECT t1.*,
GROUP_CONCAT(DISTINCT t2.info SEPARATOR '|') AS info,
GROUP_CONCAT(DISTINCT t2.data SEPARATOR '|') AS data,
GROUP_CONCAT(DISTINCT t3.email SEPARATOR '|') AS email
FROM table1 AS t1
LEFT JOIN link1 AS l1
ON l1.id_a = t1.id_a
LEFT JOIN table2 AS t2
ON t2.id_b = l1.id_b
LEFT JOIN link2 AS l2
ON l2.id_a = t1.id_a
LEFT JOIN table3 AS t3
ON t3.id_c = l2.id_c
WHERE t1.id_a = ?
GROUP BY t1.id_a
問題は、私は(「表2」/「データ」の例)カラムに2つの以上の同じ値を有する場合結果は同じ番号を付与dosn'tことです
array(
'id_a' => '1',
'info' => 'bar|kux|fred',
'data' => 'corge|quux',
'email' => '[email protected]|[email protected]|[email protected]|[email protected]|[email protected]'
)
そして、私は単一の出力(例えばバーCorge、Kux Corge、フレッドQuux)として、後に私のコードでそれらを使用するために正確に同じ数であるように連結された値を必要とするよう、:連結された値の私は要求に直接期待しているので、それを得ることが可能かどうかを知りたいですか?