2011-01-28 4 views
-1

두 개 이상의 테이블로 한 테이블을 조인하는 방법은 무엇입니까? 어떤 조건이 결합되어 있기 때문에두 개 이상의 테이블을 사용하는 조인

+5

이것은 일반적인 질문입니다. 더 구체적인 질문입니다. 너의 문제는 무엇인가? –

답변

0
SELECT * FROM a JOIN b JOIN c JOIN d 

이 카티 제품을 수행하지 않습니다,하지만 a는 세 개의 테이블과 조인되었다. 어쩌면 당신의 질문은 더 구체적 일 필요가 있습니다.

+2

JOIN 키워드가 'ON'조건을 필요로하므로이 구문은 오류를 던집니다. Cartesian 제품의 경우'ON '조건을 요구하지 않는'CROSS JOIN'이 필요합니다. –

+0

@a_horse_with_no_name : 당신이 완전히 옳았습니다. 나는 SQLite를 생각하고 있었다. ([this] (http://www.sqlite.org/lang_select.html#fromclause) 참조) : * join-op가 "CROSS JOIN", "INNER JOIN", "JOIN"또는 쉼표 (",")이며 ON 또는 USING 절이 없으면 결합 결과는 왼쪽 및 오른쪽 데이터 집합의 카티 션 곱입니다. *) – Benoit

+0

이것은 Oracle과 관련이 없습니다. JOIN ... ON은 ANSI SQL 표준입니다. ON 상태가 아니라면 SQLite에서 작동한다는 것에 놀랐습니다. 다른 DBMS (Postgres, Oracle, DB2, H2, HSQLDB)에서 전에 본 적이 없다. –

3

귀하가 찾고있는 것일 수 있습니다.

select * from Table1 a 
join table2 b on (a.column = b.column) 
join table3 c on (a.column = c.column) 

는하지만 난 당신이 기본 문에 다운 타임을 감소하는 쿼리를 작성하는 방법에 대한 자습서를 선택하는 것이 좋습니다.

0
select * from table1 a,table2 b,table3 c where a.col=b.col and a.col=c.col 
관련 문제