2013-12-18 4 views
0

해결할 수없는 작은 문제가 있습니다. 나는 세 개의 테이블을 가지고 그 다음 코드로 SELECT :테이블 세 개를 선택하십시오.

SELECT p.*, c.*, i.* 
FROM produto p, categoria c, imagem i 
WHERE p.categoria_id = c.categoria_id 
    AND p.produto_id = i.produto_id 
GROUP BY(p.produto_id) 

제품 (produto가) (imagem를) 테이블 이미지에서 무한의 이미지를 가질 수 있고, 내가 (각종의) 하나 개의 이미지 만 제품을 나열 할 만 . 내가 원하는 이미지는 1, 2, 3 등의 순서가있는 테이블 이미지 (imagem)의 image_order (imagem_ordem) 열에 있습니다.

주문 1 (ONE) 이상을 선택하고 싶습니다. ORDER BY i.imagem_ordem을 넣으려고했으나 작동하지 않습니다. 그 방법은 JOIN 일 수 있다고 생각합니다.

답변

0

은 내가 당신이 원하는 것을 이해하고 있는지 확실하지 않습니다하지만이 쿼리는 하나 개의 이미지로 모든 제품을 반환합니다

SELECT p.*, c.*, i.* 
FROM produto p, categoria c, imagem i 
WHERE p.categoria_id = c.categoria_id 
    AND p.produto_id = i.produto_id 
GROUP BY(p.produto_id) 
HAVING COUNT(i.*)=1 
+0

예, QUERY 이미 제품에 대한 하나 개의 이미지를 반환하지만 난 image_order와 이미지를 얻으려면 (INT 번호가있는 열)가 1 (ONE)에 가장 가깝습니다. 알 겠어? 도울 수 있니? – user3116593