구조 :MySQL에서 가장 낮은 PK를 가진 두 번째 tbl에서 2 tbls를 선택하지만 1 행만 선택하는 방법은 무엇입니까?
TBL 1
|car_id(PK)| make | model | year |
-----------------------------------
| 1 | Toyot | Camry | 1999 |
| 2 | Honda | Civic | 2005 |
TBL 2
|img_id(PK)| car_id| img_link |
------------------------------------
| 1 | 1 | tcamry1.jpeg |
| 2 | 1 | tcamry2.jpeg |
| 3 | 1 | tcamry3.jpeg |
| 4 | 2 | hcivic1.jpeg |
| 5 | 2 | hcivic2.jpeg |
내 쿼리 :
SELECT *
FROM cars c
LEFT JOIN imgs g
ON c.car_id=g.car_id
WHERE 1
결과 :
|img_id(PK)| car_id| make | model | year | img_link |
-----------------------------------------------------------
| 1 | 1 | Toyot | Camry | 1999 | tcamry1.jpeg |
| 2 | 1 | Toyot | Camry | 1999 | tcamry2.jpeg |
| 3 | 1 | Toyot | Camry | 1999 | tcamry3.jpeg |
| 4 | 2 | Honda | Civic | 2005 | hcivic1.jpeg |
| 5 | 2 | Honda | Civic | 2005 | hcivic2.jpeg |
각 자동차에 대해 1 행을 가져와 WHERE 절에 동일한 자동차와 관련된 모든 img_id 중에서 가장 낮은 img_id 값과 같은 값을 지정해야합니다.
결과는 내가 원하는 :
|img_id(PK)| car_id| make | model | year | img_link |
-----------------------------------------------------------
| 1 | 1 | Toyot | Camry | 1999 | tcamry1.jpeg |
| 4 | 2 | Honda | Civic | 2005 | hcivic1.jpeg |
감사합니다.
UPDATE :
나는이 라인을 따라 뭔가가 필요 : -/
SELECT g.id, c.car_id, c.mc_make, c.mc_model, c.mc_year, c.mc_desc
FROM mycars c
INNER JOIN (SELECT * FROM mycars_gallery g WHERE)
ON c.car_id=g.car_id
WHERE g.id = min(g.id)
필자는 min() 함수를 살펴볼 필요가 있다고 생각합니다. 위의 업데이트를 참조하십시오. 난 그냥 올바른 구문을 모르겠다 – Tatarin