Для каждого товара имеется слайдер. В нём несколько картинок. Вот таблица с товарами:
CREATE TABLE doob.goods (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
id_category varchar(255) NOT NULL,
name varchar(50) DEFAULT NULL,
description varchar(255) DEFAULT NULL,
price decimal(19, 2) DEFAULT 0.00,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 6
AVG_ROW_LENGTH = 3276
CHARACTER SET utf8
COLLATE utf8_general_ci
ROW_FORMAT = DYNAMIC;
Затем я сделал табличку для картинок товара. Тут good_id — это id определённого товара, а link — ссылка на картинку:
CREATE TABLE doob.images (
good_id int(10) UNSIGNED DEFAULT NULL,
link varchar(255) DEFAULT NULL,
)
ENGINE = INNODB
AVG_ROW_LENGTH = 4096
CHARACTER SET utf8
COLLATE utf8_general_ci
ROW_FORMAT = DYNAMIC;
Потом я сделал процедуру для получения списка продуктов из определённой категории:
PROCEDURE doob.catalog_get_products_in_category(IN inCategoryId int)
BEGIN
SELECT g.id, g.name, g.description, g.price FROM goods g
INNER JOIN category c
ON g.id_category = c.id
WHERE c.id = inCategoryId
ORDER BY g.id DESC;
END
Но я не могу сообразить как в одном запросе мне получить помимо основных данных g.name, g.description, g.price ещё и все ссылки к этому товару?
Если обращаться к таблице с изображениями в отдельной процедуре, то придётся как-то вытаскивать good_id нужного товара, а потом ещё и скреплять это всё с остальным массивом.
Не подскажите, дорогие знатоки, как можно это сделать попроще?