我有三个表:category
,offers
和galleries
。在我的应用程序中,我有一个搜索框,用户可以在其中输入category-id
,并且在每个商品中最多可以有4个图像。
我使用以下SQL:
SELECT offers.id
,offers.description
,offers.min_bid
,offers.max_bid
,offers.status
,offers.ending_date
,galleries.image
,galleries.crop
FROM offers
INNER JOIN galleries ON offers.id = galleries.offer_id
WHERE cat_id = $id and offers.status = 1
查询的问题在于它每次都返回相同的商品4次,每次都有不同的图片......但我需要的是,只需要返回一次,第一张图片在行中 - 忽略全部与同一优惠相关的其他图片。
有人可以帮我弄清楚我的SQL要做些什么改变吗?
答案 0 :(得分:1)
您可以使用group by offer limit 4
子句
答案 1 :(得分:0)
INNER JOIN
从两个表返回满足ON条件的每一行。在这种情况下,您可以使用OUTER JOIN
LEFT JOIN
代替INNER JOIN
。
或者您也可以使用GROUP BY
将结果汇总为@cjg暗示,但汇总比使用LEFT JOIN
更昂贵。