2009-03-30 7 views
0

J'ai posé une question before et a reçu cette réponse:Comma Separated Values ​​- Problème

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

Mais j'ai un autre champ nos1 (avec plusieurs valeurs) dans table1 que pointant également table2, je l'utilise comme ceci:

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 

, mais cela ne fonctionne pas correctement. Je ne comprends pas comment utiliser dans cette situation.

Voici mes données et resultset souhaité:

Tableau 1:

id: no    nos1 

1  14,15,16  17,18 

Tableau 2:

id  value 

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

Sortie:

id  no    nos1 

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

Répondre

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

Cela fonctionne bien. Merci pour votre temps précieux. –

+0

Si cela fonctionne, vous devez marquer cette solution comme acceptée –

+0

Ensuite, lisez la normalisation ... –

Questions connexes