728x90
SQL Joins
SQL joins는 다른 테이블로 부터 행을 가져와 합치는 것이다. 두 테이블 사이에 공통이 되는 필드를 기본으로 한다.
보통 join의 타입은 SQL INNER JOIN 으로 볼 수 있다.
SQL INNER JOIN은 여러 테이블로부터 조건이 맞는 부분의 모든 행을 가져온다.
SQL INNER JOIN Syntax
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
or:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
보통 INNER JOIN은 JOIN을 나타낸다ㅏ.
예를 들어보면
id name id name -- ---- -- ---- 1 Pirate 1 Rutabaga 2 Monkey 2 Pirate 3 Ninja 3 Darth Vader 4 Spaghetti 4 Ninja
다음과 같은 두 테이블이 있다. 첫 번째 있는 것을 TableA, 두 번째 것을 TableB라고 보겠다.
위의 상황을 아래 벤다이어그램으로 나타내면 다음과 같다.
TableA의 id 1, 3번이, TableB에 id 2, 4번과 겹치는 부분이 있다.
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name id name id name -- ---- -- ---- 1 Pirate 2 Pirate 3 Ninja 4 Ninja INNER JOIN을 사용해서 TableA와 TableB에서 매치되는 부분을 나타낸다. ON 대신 WHERE를 사용해도 같은 결과를 볼 수 있다. |
JOIN 결과물 DB에 저장하기
Insert Into #TempResult
select CountA, CountB, CountC from
(
select Count(A_Id) as CountA, 1 as commonId from tableA
where ....
and ...
and ...
) as tempA
inner join
(
select Count(B_Id) as CountB, 1 as commonId from tableB
where ...
and ...
and ...
) as tempB
on tempA.commonId = tempB.commonId
inner join
(
select Count(C_ID) as CountC, 1 as commonId from tableC
where ...
and ...
) as tempC
on tmepB.commonId = tempC.commonId
--view insert result
select * from #TempResult
'my_lesson > _SQL' 카테고리의 다른 글
SQL - IN (0) | 2016.02.25 |
---|---|
SQL - BETWEEN (0) | 2016.02.25 |
SQL - LEFT JOIN (0) | 2016.02.25 |
SQL - UNION (0) | 2016.02.25 |
SQL - DROP (0) | 2016.02.25 |
댓글