반응형

MySQL 내부 JOIN ON 사용하기.

 

여러 개의 테이블을 특정 키로 연결하는 것이 조인입니다.

A 테이블과 B 테이블이 있다면 A 테이블 컬럼과 B테이블 컬럼이 같은 것이 있을 때 같은 컬럼을 키로 하여 조인하는 방법입니다.

 

JOIN ON 명령어는 다음과 같이 사용합니다.

Select 컬럼명 from 테이블명 join 결합할 테이블명 on 테이블명.컬럼명 = 결합할 테이블명.컬럼명;

 

select * from table_sales;

select * from table_member;

 

select * from table_sales

join table_member

on table_sales.number = table_member.number;

 

 

일치하는 레코드만 가져오는 결합을 내부 조인이라고 합니다.

내부 조인을 명시적으로 표시하려면 joininner join으로 명령문을 사용합니다.

내부 조인과 달리, 한쪽 테이블에 일치하지 않는 레코드가 있어도 모두 표시하는 것을 외부조인이라고 합니다.

 

컬럼을 선택해서 표시하기.

앞에서는 모든 컬럼을 표시했습니다. 이번에는 표시할 레코드를 선택해서 표시하는데 테이블을 결합할 때는 어느 테이블이 컬럼인지 알 수 없기 때문에 구체적으로 밝혀주는데 테이블명.컬럼명 이렇게 어느 테이블이 컬럼인지 밝혀 주어야 합니다.

 

select table_sales.number, table_member.name, table_sales.sales

from table_sales

join table_member

on table_sales.number = table_member.number;

 

테이블 이름에 별명 사용하기.

테이블 이름에 별명을 사용할 때는 as 명령을 사용합니다.

 

테이블명 as 별명;

 

위에 컬럼을 선택해서 표시하기에 컬럼을 선택할 때 테이블 이름이 들어가서 좀 복잡하다고 생각이 들 겁니다. 이때는 간단히 테이블명에 별명을 붙여서 사용할 수 있습니다.

 

Select A.number, B.name, A.sales

         from table_sales as A

         join table_member as B

         on A.number = B.number;

USING을 사용해서 ON 부분 대체하기.

Join on 부분에 컬럼명이 반드시 같아야 할 필요는 없습니다. 키가 될 값만 같으면 컬럼명은 달라도 상관없습니다.

만약 컬럼명이 같을 때는 USING(컬럼명)을 이용하면 간단히 기술할 수 있습니다.

 

select A.number, B.name, A.sales

         from table_sales as A

         join table_member as B

         using(number);

 

JOIN 테이블에 WHERE 조건 설정하기.

 

Join 명령문에 조건을 설정할 때는 맨 마지막에 where를 사용하여 조건을 설정하면 됩니다.

다만 주의 해야 할 것은 조건을 설정할 때는 컬럼이 어느 테이블에 속한 컬럼인지 밝혀 주어야 합니다. 테이블명.컬럼명 이렇게 설정해 주어야 합니다.

table_sales 테이블과 table_member 테이블을 결합하고 table_sales 테이블의 sales컬럼이 50이상인 레코드를 number, name, sales를 표시해 보겠습니다.

 

select A.number, B.name, A.sales

         from table_sales as A

         join table_member as B

         using (number)

where A.sales >= 50;

 

 

여러 테이블에서 데이터 추출하기.

Join할 테이블의 수에는 제한이 없습니다.

select ~ join ~ on ~ 에 계속해서 join ~ on ~ 을 추가해서 결합합니다.

 

여러 개의 테이블을 이용해서 내부 조인하기 명령어.

select 컬럼명 from 테이블명

join 테이블명 on 조인할 조건

join 테이블명 on 조인할 조건

join 테이블명 on 조인할 조건

….

select A.number, A.sales, B.name, C.city

from table_sales as A

join table_member as B

using(number)

join table_city as C

using(number);

 

반응형

'MySQL' 카테고리의 다른 글

MySQL 셀프 조인.  (2) 2017.12.08
MySQL 외부 JOIN 사용하기.  (0) 2017.12.07
MySQL UNION 사용하기.  (0) 2017.12.05
MySQL 조건에 일치하는 레코드 삭제하기.  (0) 2017.12.02
MySQL 조건에 일치하는 레코드 복사하기.  (0) 2017.11.29
Posted by 컴스터
,