2014-11-06 5 views
0

에서 쿼리에 가입하세요. topiciduser을 가져 오는 쿼리가 있는데이 쿼리를 작성하는 방법은 iduser 대신 user (iduser 대신) 및 replies (같은 방법으로 idtopic에 조인)을 모두 추출하는 방법을 모릅니다. 도움을 많이 받으실 수 있습니다!적정 나는 네 개의 테이블이 세 개의 테이블

SELECT t.topic, t.idtopic, t.iduser 
FROM topics t 
LEFT JOIN categories c ON t.idcat = c.idcat WHERE c.idcat = '" . $idcat . "'"; 

$ idcat은 전달되는 'idcat'변수 중 하나입니다.

+0

그래서 그것을 시도, (http://dev.mysql.com/doc/refman/5.5/를 [설명서를 참조]가 en/join.html) JOIN 쿼리에 대해 지금까지 무엇을 시도 했습니까? – miken32

+0

원하는 것은 범주 테이블의 필드를 추가하는 것입니다. –

답변

0

나는 테이블 의 테이블 topics에 해당 항목을 만든 사용자의 ID라고 가정합니다. 그렇다면, 당신은 이런 식으로 작업을 수행 할 수 있습니다

SELECT t.topic, t.idtopic, u.username, COUNT(r.idreply) AS cnt 
FROM topics t 
LEFT JOIN categories c ON t.idcat = c.idcat WHERE c.idcat = '" . $idcat . "'" 
LEFT JOIN users u ON t.iduser = u.iduser 
LEFT JOIN replies r ON t.idtopic = r.idtopic 
GROUP BY t.topic, t.idtopic, u.username; 
+0

그레이트 ...이 쿼리는 '사용자 이름'을 얻기 위해 적절한 조인을 가져 왔습니다. Tnx ... 주제에 대한 응답 수에 대한 쿼리에 어떻게 추가 할 수 있습니까? – ksdst1

+0

이것은 성공적으로 쿼리에 응답을 포함하려고 시도한 것입니다. $ query = "SELECT t.topic, t.idtopic, u.username r.idreply FROM 토픽 t LEFT JOIN 카테고리 c ON t.idcat = c.idcat LEFT JOIN users u ON t.iduser = u.iduser LEFT JOIN idreply r ON r.idtopic = t.idtopic 여기서 c.idcat = ' ". $ idcat. " '"; – ksdst1

+0

어쩌면 여기서 약간 잘못 생각한 것일 수 있습니다. 나는 나의 대답을 다시 편집했다. 이게 니가 찾고있는거야? – fancyPants

0

SELECT t.topic, t.idtopic, u.username 
    FROM topics t 
    LEFT JOIN categories c ON t.idcat = c.idcat 
LEFT JOIN users u ON t.iduser = u.iduser 
WHERE t.idcat = '" . $idcat . "'" 
관련 문제