2013-03-21 2 views
0

category, offersgalleries의 세 가지 테이블이 있습니다. 내 응용 프로그램에서는 사용자가 category-id을 입력하는 검색 상자가 있으며 모든 오퍼에는 최대 4 개의 이미지가있을 수 있습니다.SQL JOIN이 너무 많은 행을 반환 함

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을 사용하고 있습니다 동일한 제안과 관련된 다른 이미지를 모두 무시하고 행의 첫 번째 이미지로 한 번만 돌아 오도록 제안합니다.

누군가 내 SQL에 대해 변경해야 할 사항을 알아낼 수 있습니까?

답변

1

당신은 group by offer limit 4 절을

+0

예 ur 아이디어는 나를 도왔습니다 –

+0

방금 ​​위의 쿼리 "groups. offer.id"로 추가했습니다 –

+0

대답은 대답에 따라 질문을 변경하지 마십시오. 그렇지 않으면 아무도 그 문제가 무엇인지 알 수 없습니다. – georgecj11

0

INNER JOIN 반환 모두 테이블에서 ON 조건을 만족하는 모든 행을 사용할 수 있습니다. 이 경우 INNER JOIN 대신 LEFT JOINOUTER JOIN을 사용할 수 있습니다.

또는 GROUP BY을 @cjg implied로 사용하여 결과를 집계 할 수도 있지만 집계는 LEFT JOIN을 사용하는 것보다 비용이 많이 듭니다.

관련 문제