逗号分隔值 - 问题

时间:2009-03-30 12:59:35

标签: sql

我问了一个问题before并收到了这个答案:

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

但我在nos1中有另一个table1字段(有多个值),也指向table2,我这样使用它:

 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

,但它无法正常工作。我不知道在这种情况下如何使用。

以下是我的数据和所需的结果集:

表1:

id:   no              nos1

1     14,15,16        17,18

表2:

id     value

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

输出:

id     no               nos1

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

1 个答案:

答案 0 :(得分: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