MySql Select Query

0

У меня есть 2 таблицы типа

Table 1  

Id    f1    f2
1    ABC    red,green
2    DEF    blue,yellow  

Table 2
id    color    value
1      red        r
2      green      g
3      blue       b  
4      yellow     y

Как я могу получить результат, подобный этому

f1     f2            values
ABC    red,green       r,g
DEF    blue,yellow     b,y

Спасибо в Advance

Теги:
aggregate-functions

2 ответа

3
Лучший ответ

Используйте Функция GROUP_CONCAT:

  SELECT t1.f1,
         t1.f2,
         GROUP_CONCAT(t2.value) AS values
    FROM TABLE_1 t1
    JOIN TABLE_2 t2 ON FIND_IN_SET(t2.color, t1.f2)
GROUP BY t1.f1, t1.f2
  • 0
    FIND_IN_SET документация
  • 0
    Дорогая! Правильно частично. Я пытался выполнить ваш запрос, но он не возвращает никакого набора результатов. Ты выполнил это?
Показать ещё 1 комментарий
1

Можете ли вы настроить схему? Я думаю, что это принесет пользу, если у вас есть таблица сопоставления любых ABC для цветов.

EG:

mapping_table
------------
id  table1_id    table2_id
1   1            1
2   1            2

Таким образом вы можете легко сделать JOIN.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню