SQL表连接,其中单个id具有多个结果

时间:2014-08-14 06:40:30

标签: sql

我正在使用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命令显示结果

1 个答案:

答案 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