2009-03-30 17 views
0

は、私は質問beforeを求め、この答えを受け取った:私はこのようにそれを使用し、またtable2を指しているカンマ区切り - 問題

SELECT table1.id, GROUP_CONCAT(table2.values) 
FROM table1 
INNER JOIN 
     table2 
ON  FIND_IN_SET(table2.id, table1.nos) 
GROUP BY 
     table1.id 

しかし、私はtable1に(複数の値を持つ)別のフィールドnos1を持っています:

SELECT table1.id, GROUP_CONCAT(table2.values),GROUP_CONCAT(table2.values) 
FROM table1 INNER JOIN table2 ON 
FIND_IN_SET(table2.id, table1.nos), 
INNER JOIN table2 ON 
FIND_IN_SET(table2.id, table1.nos1), 
GROUP BY table1.id 

ですが、正しく動作しません。このような状況で私はどのように使用するのか分かりません。

id: no    nos1 

1  14,15,16  17,18 

表2:

表1:ここでは

は自分のデータと希望の結果セットです

id  value 

14  PHP 
15  JAVA  
16  C++ 
17  mysql 
18  mysql server 

出力:

id  no    nos1 

1  PHP, JAVA, C++ mysql, mysql server 

答えて

4
SELECT table1.id, 
     (
     SELECT GROUP_CONCAT(table2.values) 
     FROM table2 
     WHERE FIND_IN_SET(table2.id, table1.no) 
     ) AS no, 
     (
     SELECT GROUP_CONCAT(table2.values) 
     FROM table2 
     WHERE FIND_IN_SET(table2.id, table1.nos1) 
     ) AS nos1 
FROM table1 
+0

正常に動作しています。 あなたの貴重な時間をありがとう。 –

+0

動作している場合は、この解決策を受け入れたとマークする必要があります –

+0

次に正規化を読み上げてください... –