2016-09-11 6 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 | 
+----------+---------+ 

私はこれを行うのですか

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

のために1行 で左のid =右のIDを表示するために持っているように見えている行われていますか?私は、これは合理的に単純なアプリケーションです)

+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を(使用して、これをacheiveする単純なクエリを使用することができると思い、テーブルを結合し

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

関連する問題