2013-01-21 3 views
1

여기 내 테이블 구조데이터베이스에서 고유 레코드를 가져 오는 방법은 무엇입니까?

album 
id ---- albumname 
1 General 
3 Sports 
9 Activities 
gallery 
id --- ablumid--- image_thumb --    image_full 
1 1 uploads/1358401616.jpg uploads/thumbs/thumb_1358401616.jpg 
2 1 uploads/1358401641.jpg uploads/thumbs/thumb_1358401641.jpg 
3 1 uploads/1358402071.jpg uploads/thumbs/thumb_1358402071.jpg 
4 3 uploads/1358402334.jpg uploads/thumbs/thumb_1358402334.jpg 

문제는 내가 그을음 갤러리를 위해 너무 많은 이미지가입니다.

여기 여기 내 MySQL의 쿼리

SELECT DISTINCT gl.catid as gallery_cat_id, ab.albumname,gl.imagest 
FROM albums as ab 
INNER JOIN gallery as gl ON ab.id=gl.catid 
order by ab.albumname ASC 

입니다 결과

gallery_id albumname image_full 
38  Activities  uploads/thumbs/thumb_1358424428.jpg 
41  Activities  uploads/thumbs/thumb_1358424483.jpg 
40  Activities  uploads/thumbs/thumb_1358424468.jpg 
39  Activities  uploads/thumbs/thumb_1358424446.jpg 

갤러리 테이블의 모든 레코드를 내가 쿼리에 DISTINCT 추가 쿼리 쇼이지만 작동하지 않습니다. 아무도 내가 여기에서 놓친 것을 말해 줄 수 있습니까? 방금 (상관없이) 모든 앨범에 대한 하나의 이미지를 필요로하지 않는 경우

+5

무엇을 설명 –

+0

너는 필요해. 별개의 알바 네임? – Shomz

+0

원하는 쿼리 결과는 무엇입니까? – Taryn

답변

0

, 당신은 앨범 ID로 그룹에, GROUP BY 절을 사용할 수 있습니다 : 나에게 네 개의 고유 한 행과 같은

SELECT gl.catid as gallery_cat_id, ab.albumname, gl.imagest 
FROM 
    albums as ab 
    INNER JOIN gallery as gl 
    ON ab.id=gl.catid 
GROUP BY ab.id 
order by ab.albumname ASC 
관련 문제