2016-09-11 3 views
0

У меня есть задача завершить. существует много-много отношений. стол мост был сделан, который выглядит какmysql - от многих до многих запросов из таблицы моста

left id  right id 
    +----------+---------+ 
|  1 |  1 | 
|  1 |  2 | 
|  2 |  1 | 
|  2 |  2 | 
|  2 |  8 | 
|  3 |  1 | 
|  3 |  2 | 
|  3 |  4 | 
|  4 |  1 | 
|  4 |  2 | 
|  4 |  3 | 
|  4 |  5 | 
|  5 |  1 | 
|  5 |  2 | 
|  5 |  4 | 
|  5 |  6 | 
|  5 |  7 | 
+----------+---------+ 

я должен отобразить слева ID = правильный идентификатор в одной строке , например

for left id 1 
left1 | right1 righ 2 
for left id 3 
left3 | right1 right2 right 4 

, как мне это сделать? Я попытался соединяющую таблицу, не работает

+0

См http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be- a-very-simple-sql-query – Strawberry

ответ

0

Я думаю, что вы можете использовать простой запрос, чтобы достигнуть этого с помощью GROUP BY и GROUP_CONCAT()

SELECT left_id, GROUP_CONCAT(right_id SEPARATOR ' ') as rigth_id 
FROM left-right 
GROUP BY left_id; 

enter image description here

+0

спасибо большое. я очень ценю вашу помощь – itsMe

0

Это является достаточно простым приложением от GROUP_CONCAT() и GROUP BY. (http://sqlfiddle.com/#!9/ed7e1/2/0)

SELECT leftId, 
     GROUP_CONCAT(rightId ORDER BY rightId) rightIds 
    FROM bridge 
GROUP BY leftId 
+0

точно так же, как я ответил :) –

+0

большое спасибо. Я очень ценю вашу помощь – itsMe