2012-01-28 2 views
0

여러 테이블을 선택하고 이러한 테이블 중 하나에서 내부 조인을 할 수 있습니까? 예 :Mysql 하나의 테이블에서 여러 개의 테이블을 선택하지만 내부 조인

SELECT * 
FROM table1 AS t1, table2 AS t2, table3 AS t3 
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3 
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4 
WHERE ... 

이 경우 나는이 문제를 일으키고 있습니다. 그것은 나에게 오류를 준다 - 알 수없는 "t1.row3"열에서 'on 절'. 여러 테이블을 선택할 수 있는지는 모르겠지만 이러한 테이블 중 하나에서 내부 조인을해야합니다.

+0

실제 테이블과 열 이름입니까? – klennepette

+0

아니요, 이들은 내 실제 테이블과 열 이름이 아니지만 비슷합니다. 나는 3 개의 테이블을 선택할 필요가있다. 하나의 테이블에서 내부 조인을 할 필요가 있고, 다른 2 개의 테이블은 단순한 선택을 할 필요가있다. – woopata

답변

5
JOIN

피연산자 콤마 , 피연산자보다 높은 우선 순위를 가지며, 따라서 효과적으로 T1, T2, T3 주위

t1, t2, (t3, t4, t5 ON ...) 

넣어 괄호로 처리 조인. INNER 조인 조건없이 가입에

SELECT * 
FROM table1 AS t1 
INNER JOIN table2 AS t2 
INNER JOIN table3 AS t3 
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3 
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4 
WHERE ... 

때문에 쉼표 것과 같습니다으로

SELECT * 
FROM (table1 AS t1, table2 AS t2, table3 AS t3) 
INNER JOIN table4 AS t4 ON t1.row3 = t4.row3 
INNER JOIN table5 AS t5 ON t1.row4 = t5.row4 
WHERE ... 

당신은 또한 당신의 쿼리를 작성할 수 있습니다.

+0

덕분에, 그것은 작동 중 :) – woopata

+0

실제로 내가 지금 그 결과를 여러 번 같은 행을 얻을 볼 수 didnt ... row1, row1, row1, row2, row2, row2 .... – woopata