테이블 2 개, 제품 테이블 및 이미지 테이블이 있습니다. 제품에는 레코드 당 두 개 이상의 이미지가있을 수 있습니다. 제품 당 모든 이미지가 아닌 제품 당 1 개의 이미지를 나열하는 SQL 문이 필요합니다.SQL : 1 대 다수 관계에서 부모 당 하나의 자식 레코드를 표시하는 문
이SELECT Product.RefCode, Img.ImgPath
FROM Product INNER JOIN (
SELECT ProductImg.ImgPath, ProductImg.PrdFK
FROM ProductImg
LIMIT 0,1) AS Img ON Product.PrdID = Img.PrdFK;
위의 예 내가 서브에서 LIMIT 0,1를 제거하면 나는 모든 제품의 전체 목록을 SELECT, 그러나, 0 결과를 반환
A는 현재의 내 노력의 예입니다 축소 및 모든 이미지.
제품 레코드 당 1 개의 이미지 레코드 만 반환하면됩니다.
나는 "프로그래머"코드를 MySQL에 맞게 수정했으며 정상적으로 작동합니다.
SELECT Product.RefCode,
(Select ProductImg.ImgPath
From ProductImg
Where Product.PrdID = Img.PrdFK LIMIT 0,1) AS ImgPath
FROM Products
"Bill Karwin의"솔루션을 시도 할 때 어떤 이유로 인해 서버로드가 오랜 시간 동안 보냈습니다.
TOP 키워드는 Microsoft SQL Server (및 Sybase)의 독점권입니다. –
미안하지만, 나는 몰랐다. 고맙습니다. –
나는 작은 개정판을 만들었지 만 (위 참조) 성명서는 괜찮았다. – ticallian