@julia1990
Пытаюсь изучать веб сервера.

Как обьединить таблицы mysql?

Добрый вечер, такой вопрос.
Есть таблица products и images
В products
ID | NEW_IMAGE
11
22
В images
ID | PRODUCT_ID | FILENAME
1 | 11 | 1.jpg
2 | 11 | 2.jpg
3 | 22 | 3.jpg
где filename это название картинки 1.jpg
Теперь нужно чтоб в
таблице products появилось новое поле "NEW_IMAGE, и туда по ID продукта перетащить все фото в таком формате
["1.jpg", "2.jpg"]

То есть после слияния должно быть так
В products
ID | NEW_IMAGE
11 | ["1.jpg", "2.jpg"]
22 | ["3.jpg"]

Возможно ли такое сделать?
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Используем JSON_ARRAYAGG
UPDATE products
JOIN (
  SELECT PRODUCT_ID, JSON_ARRAYAGG(FILENAME) IMAGES 
  FROM images 
  GROUP BY PRODUCT_ID
) images ON images.PRODUCT_ID = products.ID
SET NEW_IMAGE = IMAGES;


Проверить здесь: MySQL JSON_ARRAYAGG
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы