본문 바로가기
프로그래밍 놀이터/Tips

[SQLite] JOIN 에 대한 이야기

by 돼지왕 왕돼지 2017. 8. 22.
반응형

[SQLite] JOIN 에 대한 이야기


column count, CROSS JOIN, equality, FULL JOIN, FULL OUTER JOIN, inner join, Join, join example, join tutorial, join using, left join, lfet outer join, Natural, natural join, on, on phrase, outer join, right join, RIGHT OUTER JOIN, row count, SQLite, using, using phrase, [SQLite] JOIN 에 대한 이야기, 모든 column, 조건 만족



-

다음과 같은 JOIN 이 있다.

     CROSS JOIN

     INNER JOIN

     OUTER JOIN




CROSS JOIN


첫번째 table 의 모든 row 와 두번쨰 table 의 모든 row 를 JOIN 한다.

만약 각 table 에 x, y 개의 컬럼이 있다면, 결과 table 은 x+y 개의 컬럼이 된다.

만약 각 table 에 a, b 개의 row 가 있다면, 결과 table 은 a*b 개의 row 가 된다.


CROSS JOIN 은 큰 table 을 만들기 때문에 꼭 필요한 경우에만 써야 한다.


SELECT … FROM table1 CROSS JOIN table2;




INNER JOIN


조건에 의한 JOIN 을 수행한다.

조건을 만족시키는 첫번째 table 의 row 와 두번째 table 의 row 를 찾아 JOIN 한 table 이 나온다.


INNER JOIN 은 가장 많이 쓰이는 형태의 JOIN 이며, INNER 는 optional 하게 사용하면 된다.


SELECT … FROM table1 [INNER] JOIN table2 ON conditional_expression



두 테이블에 동일한 columnName 을 가진 녀석이 있다면, USING 을 사용하여 INNER JOIN condition 을 간단히 할 수 있다.


SELECT … FROM table1 JOIN table2 USING { column1, … } ... // ON table1.column1 == table2.column1 와 같다.



NATURAL JOIN 은 JOIN...USING 과 비슷하다.

2개의 table 모두에 있는 모든 column 의 equality 를 확인하여 return 한다


SELECT … FROM table1 NATURAL JOIN table2 ...




OUTER JOIN


INNER JOIN 의 확장판이다.

OUTER JOIN 은 LEFT, RIGHT 그리고 FULL JOIN 의 3가지 type 이 있다.

그러나 SQLite 는 LEFT OUTER JOIN 만 지원한다.


OUTER JOIN 도 ON, USING, NATURAL 을 통해 조건을 명시할 수 있다.

한번 JOIN 이 수행되면, OUTER JOIN 은 join 이 안 된 row 들을 NULL 로 마킹해서 넣어준다.


SELECT … FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ...




반응형

댓글