2010-06-01 5 views
0

특정 카테고리에서 태그를 찾을 수 있기를 바랍니다. 다음은 데이터베이스 설계의 예입니다.SQL을 사용하여 태그로 카테고리 연결

 images 
     +----------+-----+-------------+-----+ 
     | image_id | ... | category_id | ... | 
     +----------+-----+-------------+-----+ 
     | 1  | ... |  11  | ... | 
     +----------+-----+-------------+-----+ 
     | 2  | ... |  12  | ... | 
     +----------+-----+-------------+-----+ 
     | 3  | ... |  11  | ... | 
     +----------+-----+-------------+-----+ 
     | 4  | ... |  11  | ... | 
     +----------+-----+-------------+-----+ 

     images_tags 
     +----------+--------+ 
     | image_id | tag_id | 
     +----------+--------+ 
     |  1 | 53 | 
     +----------+--------+ 
     |  3 | 54 | 
     +----------+--------+ 
     |  2 | 55 | 
     +----------+--------+ 
     |  1 | 56 | 
     +----------+--------+ 
     |  4 | 57 | 
     +----------+--------+ 

태그와 카테고리는 ID와 실제 이름 (텍스트)을 각각 관련시키는 테이블을 가지고 있습니다. 그래서 제 질문은 어떻게 내가 어떻게 특정 카테고리의 이미지를 가지고있는 태그를 찾을 수 category_id = 11와 이미지가 다른 단어에서 tag_id 53 54 56 57

있는 것을 발견 할 것이다입니까?

+0

예를 들어, 당신은 다른 모든 것을 얻을 수 있지만, 당신은'tag_id'를 얻지 못할 것입니다. – eksortso

+0

좋은 지적!, 나는 미래 참고를 위해 포스트를 고쳤다. 감사합니다 – Pablo

답변

3

아마도 내부 SELECT가 그렇게할까요? 다음과 같이하십시오 :

SELECT tag_id FROM images_tags WHERE image_id IN (SELECT image_id FROM images WHERE cateory_id = 11) 
+0

입력 해 주셔서 감사합니다. – Pablo

+0

당신을 진심으로 환영합니다! –

0

이 시도 :

X 원하는 카테고리입니다
SELECT images.*, tags.* from images, tags where images.image_id = images_tags.image_id and images.category_id = X; 

.

관련 문제