2013-03-21 64 views
0

我有三個表:category,offersgalleries。在我的應用程序中,我有一個搜索框,用戶輸入category-id,每個優惠中最多可以有4個圖像。SQL JOIN返回的行太多

我使用下面的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來做到這一點?

回答

1

您可以使用group by offer limit 4條款

+0

是你想法幫了我 – 2013-03-21 17:43:24

+0

我剛剛在上面的查詢中加入了「group by offers.id」 – 2013-03-21 18:01:07

+0

請不要根據答案改變你的問題。否則,沒有人會知道是什麼問題。 – georgecj11 2013-03-21 18:02:49

0

INNER JOIN回報每一個從兩個表滿足ON條件的行。在這種情況下,您可以使用OUTER JOIN,即LEFT JOIN而不是INNER JOIN

或者您也可以使用GROUP BY將結果彙總爲@cjg暗示,但彙總比使用LEFT JOIN更昂貴。