SQL JOIN返回太多行

时间:2013-03-21 17:03:38

标签: php mysql join subquery

我有三个表:categoryoffersgalleries。在我的应用程序中,我有一个搜索框,用户可以在其中输入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要做些什么改变吗?

2 个答案:

答案 0 :(得分:1)

您可以使用group by offer limit 4子句

答案 1 :(得分:0)

INNER JOIN从两个表返回满足ON条件的每一行。在这种情况下,您可以使用OUTER JOIN LEFT JOIN代替INNER JOIN

或者您也可以使用GROUP BY将结果汇总为@cjg暗示,但汇总比使用LEFT JOIN更昂贵。