Как объединить строки при объединении двух таблиц

0

У меня есть буксировочные таблицы, и я выполняю выражение о соединении. Когда я делаю там несколько столбцов, имеющих одинаковые ключевые и разные значения. Есть ли способ объединить эти значения, разделенные запятыми?

Это запрос соединения

SELECT A.bucket_id,B.id FROM coms_category A JOIN product_category B ON A.category_url=B.url;

И образец результата подобен этому

+-----------+-----+
| bucket_id | id  |
+-----------+-----+
|      1261 | 692 |
|      1157 | 600 |
|      1222 | 600 |

Поскольку 600 идет дважды. Мой желаемый результат - 1157,1222 против 600.

я пытался

SELECT B.id,A.bucket_id GROUP_CONCAT(A.bucket_id SEPARATOR ', ')FROM coms_category A JOIN product_category B ON A.category_url=B.url GROUP BY B.id;

но это не сработало.

  • 0
    Рассмотрите возможность обработки проблем с отображением в коде приложения
  • 0
    Измените A.bucket_id GROUP_CONCAT(A.bucket_id SEPARATOR ', ') на GROUP_CONCAT(A.bucket_id SEPARATOR ', ')
Теги:

1 ответ

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

использовать подзапрос, 1-я group by будет удалять дублирование

select T.id ,GROUP_CONCAT(T.bucket_id SEPARATOR ', ')
 from (
  SELECT B.id,A.bucket_id 
    FROM coms_category A 
    JOIN product_category B 
    ON A.category_url=B.url 
    GROUP BY B.id,A.bucket_id
) as T group by T.id

Ещё вопросы

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