Stack/SQL

[SQL] INNER JOIN

7ingout 2022. 6. 7. 09:44

두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것

 

jointest 데이터베이스

1. usertable

아이디, 이름, 생년, 지역, 모바일1, 모바일2

primary key 아이디

 

mysql> create table userTable(
    ->   아이디 varchar(3) primary key,
    ->  이름 varchar(10) not null,
    ->   생년 varchar(4) not null,
    ->   지역 varchar(4) not null,
    ->   모바일1 varchar(3) not null,
    -> 모바일2 varchar(8) not null
    -> );

 

userTable

 

2. buytable

순번, 아이디, 물품명, 단가, 수량

primary key 순번

foreign key 아이디 (컬럼명) references usertable 아이디 (컬럼명) 

 

mysql> create table buyTable(
    -> 순번 int primary key auto_increment,
    -> 아이디 varchar(3) not null,
    -> 물품명 varchar(4),
    -> 단가 int not null,
    -> 수량 int not null,
    -> foreign key (아이디) references userTable(아이디)
    -> );

 

 

buyTable

 

innerjoin - 조인에서 가장 많이 사용하는 join이다.

형식

select <열 목록>

from <첫번째 테이블>

inner join <두번째 테이블>

on <조인될 조건>

[where 검색조건]

 

ex> select * from userTable

inner join buyTable

on buyTable.아이디 = userTable.아이디

where userTable.아이디 = 'BBK';

 

 

ex> select 이름, 생년, userTable.아이디, 물품명, 단가
    -> from userTable
    -> inner join buyTable
    -> on userTable.아이디 = buyTable.아이디;

 

 

ex> select userTable.아이디, 물품명, 지역, concat(모바일1, 모바일2) as ' 연락처'

from userTable

inner join buyTable

on buyTable.아이디 = userTable.아이디;