2009-03-30 14 views
0

fragte ich eine Frage before und erhielt diese Antwort:Comma Separated Values ​​- Problem

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

Aber ich habe ein anderes Feld nos1 (mit mehreren Werten) in table1, die zeigen auch table2, ich habe es wie folgt verwenden:

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 

, aber es funktioniert nicht richtig. Ich werde nicht in dieser Situation verwenden.

Hier sind meine Daten und die gewünschte resultset:

Tabelle 1:

id: no    nos1 

1  14,15,16  17,18 

Table2:

id  value 

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

Ausgang:

id  no    nos1 

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

Antwort

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

Es funktioniert gut. Danke für Ihre wertvolle Zeit. –

+0

Wenn es funktioniert, sollten Sie diese Lösung als akzeptiert markieren –

+0

Dann lesen Sie auf Normalisierung ... –

Verwandte Themen