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标签中的尺寸名称和价格,那没问题,但我也想在img标签中回显picture_names
答案 0 :(得分:0)
每个产品只有两张图片,一种解决方案是使用聚合:
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
进行自我编排...)。