0

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

4

2 回答 2

1

你可以使用一个group by offer limit 4子句

于 2013-03-21T17:06:37.707 回答
0

INNER JOIN从两个表中返回满足 ON 条件的每一行。在这种情况下,您可以使用OUTER JOINwhich isLEFT JOIN而不是INNER JOIN.

或者你也可以使用GROUP BY@cjg 来聚合结果,但是聚合比使用更昂贵LEFT JOIN

于 2013-03-21T17:21:09.467 回答