우선 간단한 회원 테이블을 하나 만든다.
CREATE TABLE `board_member` (
`mid` int(11) NOT NULL AUTO_INCREMENT,
`userid` varchar(145) DEFAULT NULL,
`email` varchar(245) DEFAULT NULL,
`username` varchar(145) DEFAULT NULL,
`regdate` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`mid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
기존에 있던 board 테이블과 join해서 사용자 이름을 출력해 볼것이다.
그러기위해서 데이터를 추가한다.
위와같이 입력한다.
그럼 join을 해보자
select * from board b
join board_member m on b.userid=m.userid;
일반적인 가장 간단한 형식의 join이다.
board 테이블에 있는 컬럼값과 board_member테이블에 있는 칼럼값이 같다면 두 컬럼이 같다는 조건으로 서로 다른 테이블을 join할 수 있다.
테이블을 생성할때 이렇게 같은 값을 넣게 되는 칼럼은 칼럼명을 같게 해주는 것이 좋다.
어떤 테이블을 먼저 입력할지는 스스로 선택하면 된다. 차이는 먼저 입력한 테이블이 먼저 출력된다.
내가 원하는 값은 게시물의 제목과 사용자 이름 게시물의 등록일이다. 이 세가지만 출력해보자.
select b.subject,m.username,b.regdate from board b
join board_member m on b.userid=m.userid;
join을 하게 되면 꼭 필요한 컬럼만 지정해주는 것이 좋다.그래야 속도도 빠르고 구분이 쉬워진다.
이렇게 join이란 현재 테이블엔 없지만 현재 테이블에 있는 어떤 값을 통해 다른 테이블에서 필요한 값을 가져오고자 할때 사용한다.
join의 세계도 엄청 복잡하지만 우선은 간단하게 이정도만 알고 있으면 된다.
'mysql' 카테고리의 다른 글
mysql - 게시판 리스트에서 사용하는 쿼리 (0) | 2022.01.13 |
---|---|
mysql 게시판 CRUD 기초 강좌 - limit (0) | 2022.01.12 |
mysql 게시판 CRUD 기초 강좌 - order by , group by (0) | 2022.01.11 |
mysql 게시판 CRUD 기초 강좌 - select의 like (0) | 2022.01.11 |
mysql 게시판 CRUD 기초 강좌 - 테스트를 위한 대량의 데이터 입력 (0) | 2022.01.10 |