Добрый вечер, такой вопрос.
Есть таблица 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"]
Откуда взялась эта блажь, "объединять таблицы"?
Ни в одном учебнике, который вы откроете "пытаясь изучать веб-сервера" не будет написано ничего подобного.
А наоборот, будет написано, что правильная та структура, которая сейчас - продукты отдельно, картинки отдельно.
FanatPHP, я с вами полностью согласна, но тут CMS которая требует именно так, поэтому и переделываю..
Пыталась обьединить , но сложность в том что тут у одного товара может быть много фото, и они должны быть через запятую, в кавычках и в квадратных скобках.
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;
Slava Rozhnev, Версия 4, а я вижу что нужна 5.7 , второе решение тоже классное) Спасибо, сейчас на сервере обновляю mysql и очень хочется попробовать функцию выше)
Я очень Вам благодарна за помощь!