我正在使用SQL查询来显示数据库中的产品,每个产品都有一个预览图像。为此,我使用表连接将图像表与产品组合在一起。
我遇到的问题是每个产品ID都会应用多个图像,因此我得到重复。我只需要找到一种解决方法,使我能够为每个产品ID获取单个图像,而不限制产品本身。
这是我的代码:
SELECT prod.id, prod.name, prod.description, img.img
FROM product AS prod
LEFT JOIN img
ON prod.id = img.product_id;
除了为每种产品创建的重复项外,大部分都可以使用。
我觉得我还应该提一下,我用PDO命令显示结果
答案 0 :(得分:1)
通过以下方式进行分组:
SELECT prod.id, prod.name, prod.description, MAX(img.img)
FROM product AS prod
LEFT JOIN img
ON prod.id = img.product_id
GROUP BY prod.id, prod.name, prod.description
或者在选择列表中执行相关的子选择:
SELECT prod.id, prod.name, prod.description,
(SELECT MAX(img.img) FROM img WHERE prod.id = img.product_id)
FROM product AS prod