0

categoryoffers、およびの3 つのテーブルがあり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の何を変更すればよいかを誰かが教えてくれますか?

4

2 に答える 2

1

group by offer limit 4句を使用できます

于 2013-03-21T17:06:37.707 に答える
0

INNER JOIN両方のテーブルから ON 条件を満たすすべての行を返します。この状況では、の代わりにOUTER JOINwhich isを使用できます。LEFT JOININNER JOIN

またはGROUP BY、@cjg が暗示するように使用して結果を集計することもできますが、集計は を使用するよりもコストがかかりLEFT JOINます。

于 2013-03-21T17:21:09.467 に答える