안녕하세요!
이번 포스팅에서는 SQL의 JOIN 구문에 대해서 설명하겠습니다.
SQL 은 기본적으로 여러개의 테이블을 join(조인)할 수 있습니다. join 의 의미는 합친다라는 의미인데 SQL에서는 서로 다른 테이블을 합치서 하나의 결과를 보여주는것을 의미합니다.
JOIN의 방법에는 INNER JOIN(이너조인, 내부조인), OUTER JOIN, LEFT JOIN, JOIN 등 여러가지 방법이 있는데 이번 포스팅에서는 일단 JOIN의 기본적인 방법에 대해서 설명하고 다음 포스팅에서 위 여러가지 방법에 대해서 하나씩 세부적으로 설명하겠습니다.
예를 들어서 두개 이상의 테이블로부터 데이터를 가져오기 위해서 FROM 뒤에 테이블의 이름을 나열하면 됩니다.
기본구문
1) select * from test1, test2;
2) select * from test1 A, test2 B;
3) select * from test1 as A, test2 as B;
// 위 구문을 줄여서 Cross join(크로스 조인)이라고 합니다.
그리고 알아두어야 할것은 만약 test1의 레코드는 5개이며, test2의 레코드가 10개가 있을 경우 5 * 10 즉 50개의 레코드를 보여주게 됩니다. 1, 2, 3 의 방법을 적었는데 모두 같은 의미입니다. 하지만 1번 예제와 2,3번 예제의 사용방법에 대해선 서로 조금씩 다릅니다. 아 참고로 2번과 3번예제는 동일한 구문입니다. 이전 포스팅에서 AS에 대해서 설명했었는데 AS의 내용에 대해선 이전 포스팅을 참조하시기 바라고 2번 예제는 AS 를 생략한 구문입니다. 아래 예제에서 어떻게 사용방법이 다른지 살펴보겠습니다.
1) select test1.title, test2.comment from test1, test2 where test1.id = test2.id
2) select A.title, B.comment from test1 as A, test2 as B where A.id = B.id
// 두 구문은 물론 동일한 결과값을 보여줍니다. 하지만 1번 예제와 2번 예제를 자세히 보면 테이블의 이름을 그대로 써서 조인을 했는가와 테이블 이름을 as 를 사용해 다른 별칭값을 만들어 조인한것이 다른것을 알 수 있습니다. 아무래도 SQL 구문을 짜는 일도 일일이 키보드를 두드려 가며 하는 일이기 때문에 소스를 조금이라도 줄여서 같은 결과값을 빨리 나타내는것이 중요하겠죠.
그래야 퇴근도 빨라지니까요 ㅎㅎ;;
우선 JOIN 문에 대해서 알아두시고 다음 포스팅에서 테이블을 사용하여 JOIN 구문을 만들어 결과값이 어떻게 보여지는지에 대해서 알아보겠습니다.
비가오니 기온이 뚝 떨어지네요. 아무쪼록 감기 조심하시고 그럼 오늘 하루도 즐거운 하루!! 즐거운 프로그래밍 되시기 바랍니다. ^^
'SQL' 카테고리의 다른 글
SQL LEFT JOIN 구문 (0) | 2013.09.02 |
---|---|
SQL INNER JOIN 구문 (0) | 2013.08.31 |
SQL AS(Aliases) 구문 (0) | 2013.08.27 |
SQL BETWEEN 구문 (2) | 2013.08.23 |
SQL IN 구문 (14) | 2013.08.22 |