mysql - sql中每个产品多张图片
问题描述
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 中想要的是在 ap 标签中回显尺寸名称和价格,这没问题,但我也想在 img 标签中回显图片名称
解决方案
每个产品只有两张图片,一种解决方案是使用聚合:
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
在必要时允许自我...)。
推荐阅读
- android - FirebaseFaceDetection 与 CameraX 崩溃
- linux - 如何复制已选择文件的文件夹和子文件夹
- prometheus - 将千分尺度量发布到 Prometheus
- xslt-1.0 - 删除元素上的命名空间
- c# - 如何在两个按钮之间传递字符串变量
- android - 使用 Android-DraggableGridViewPager 居中 ViewGroup 视图
- python - 使用 setuptools 编译扩展模块的困难
- c - 调用 always_inline '_mm256_add_epi32' 时内联失败:目标特定选项不匹配
- json - 为什么我输入错误的电子邮件或密码时这里没有错误
- php - 如何使用 jquery 在 ajax 中显示来自 CI 控制器的 json_encoded 数据