Несколько картинок для продукта в sql - PullRequest
0 голосов
/ 19 марта 2019
product
-----------
product_id
product_name
product_description
price
size

productpictures
--------------
product_id
picture_id

pictures
---------
picture_id
picture_name

каждый продукт имеет 2 изображения, но мне нужно только название, размер, описание и цена, но мне нужны обе фотографии.

я использовал:

SELECT 
    product.product_description, 
    product.product_name, 
    product.price, 
    product.size,
    pictures.picture_name
FROM product
LEFT OUTER JOIN productpictures
    ON product.product_id = productpictures.product_id
LEFT OUTER JOIN bilde
    ON productpictures.picture_id = pictures.picture_id
WHERE product.product_id = 1

Но я получаю две строки с двойным именем, ценой, размером и описанием, но имена изображений различаются, но как я могу вставить оба имени изображений в мой файл php, чтобы он отображал информацию о продукте и обе фотографии?

Я попытался напечатать имя изображения строки, но это дало мне только первое имя, но не второе.

size     product_name      price   picture_name
50x70cm Sandvasket silke    399   Elfenben.PNG
50x70cm Sandvasket silke    399   SVElfenben.JPG

это мой текущий результат с моим текущим SQL-оператором. в основном, когда я хочу в php, это отобразить имя размера и цену в теге p, это не проблема, но я также хочу отобразить оба picture_names в теге img

1 Ответ

0 голосов
/ 19 марта 2019

Имея только два изображения для каждого продукта, одним из решений является использование агрегации :

SELECT 
    pr.product_description, 
    pr.product_name, 
    pr.price, 
    pr.size, 
    MAX(pi.picture_name) picture_name1, 
    MIN(pi.picture_name) picture_name2
FROM product pr
LEFT JOIN  productpictures pp ON pr.product_id = pp.product_id
LEFT JOIN pictures pi ON pp.picture_id = pi.picture_id
WHERE pr.product_id = 1
GROUP BY
    pr.product_id,
    pr.product_description, 
    pr.product_name, 
    pr.price, 
    pr.size

PS: я добавил псевдонимы таблиц в ваш запрос, они облегчают чтение запросаи поддерживать (и разрешать само-JOIN в случае необходимости ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...