2014-03-03 2 views
1

(많은 테이블에 많은)하는 태그 객체를 조회하려고 tags_to_mods (수정 코드 & 개 많은 관계에)내가 쿼리하려고 세 개의 테이블이

ttm_id 
tag_id 
mod_id 

기본적으로 주어진 mod_id와 관련된 tag_name 및 tag_id를 찾으려고합니다.

어떻게해야합니까? 필자는 SQL을 사용하는 초보자이며 이와 같은 관계형 데이터를 올바르게 쿼리하지 못했습니다. 나는 내가 선택한 것을 선택하는 것보다 더 나은 방법이 있다고 가정한다.

이 (의사에서 (틱) 코드)에서 내 시도 :

x = SELECT tag_id FROM tags_to_mods WHERE mod_id = $mod_id

SELECT tag_name, tag_id FROM tags WHERE tag_id = x

가 원하는 결과를 얻을 수 있지만, 내가 두 번 내 테이블을 쿼리해야 ...

+0

테이블을 재정렬 할 수 있습니까? 3 개의 테이블을 가지고 있으면 모든 것이 정확하도록 유지하는 것이 까다로울 것 같고 mod_id를 태그 테이블에 추가하거나 그 반대의 경우 mod_id를 2로 줄일 수 있다고 생각합니다. – nick

+0

@nick 데이터베이스에 대한 내 모든 액세스는 하드 코딩 된 문을 통해 처리되므로 정확하게 입력 한 내용을 제어 할 수 있습니다. – sh3rifme

답변

1

보십시오 ($ mod_id는 Mod의 ID입니다) :

select tg.tag_name, tg.tag_id 
from Tags tg 
inner join tags_to_mods tm 
on(tg.tag_id = tm.tag_id) 
where tm.mod_id = $mod_id; 
+0

감사! 그것은 매력을 작동! – sh3rifme

+0

@ sh3rifme을 도와 드리겠습니다. – Hackerman

0
SELECT m.author, m.name, m.url, t.tag_id, t.tag_name 
FROM Mods AS m 
INNER JOIN tags_to_mods AS tm ON tm.mod_id = m.mod_id 
INNER JOIN Tags AS t ON t.tag_id = tm.tag_id 
WHERE m.mod_id = $mod_id 
+0

@Robert Rozas의 대답과 함께했지만 도움을 주셔서 감사합니다! – sh3rifme

관련 문제