2009-03-30 6 views
0

я задал вопрос 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 

, но он не работает должным образом. Я не получаю, как использовать в этой ситуации.

Вот мои данные и желаемый набор результатов:

Table1:

id: no    nos1 

1  14,15,16  17,18 

Table2:

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

Работает нормально. Спасибо за ваше драгоценное время. – 2009-03-30 13:40:16

+0

Если он работает, вы должны пометить это решение как принятое –

+0

Затем ознакомьтесь с нормализацией ... –

Смежные вопросы