MySQL - 스칼라 서브쿼리(Scalar Subquery) 사용법
Linux Server/MYSQL
2023. 5. 8. 09:00
MySQL - 스칼라 서브쿼리(Scalar Subquery) 사용법
이번 포스팅에서는 스칼라 서브쿼리(Scalar Subquery)에 대해서 알아보도록 하겠습니다.
관련글 |
https://server-talk.tistory.com/521 - MySQL - 서브쿼리(Subquery)란?
MySQL - 조회 테이블 데이터 생성 및 구조확인 |
1. 조회할 테이블 명세서 - 회원테이블, 회사테이블
2. 조회할 테이블 생성 - 회원 테이블
CREATE TABLE member_table (
seq INT NOT NULL AUTO_INCREMENT,
company_code VARCHAR(100),
mb_id VARCHAR(20),
mb_pw VARCHAR(20),
address VARCHAR(50),
mb_tell VARCHAR(50),
PRIMARY KEY(seq)
) ENGINE=innodb CHARSET=utf8;
3. 조회할 테이블 생성 - 회사 테이블
CREATE TABLE company_table (
seq INT NOT NULL AUTO_INCREMENT,
company_code VARCHAR(100),
korea_name VARCHAR(100),
company_name VARCHAR(100),
company_address VARCHAR(20),
PRIMARY KEY(seq)
) ENGINE=innodb CHARSET=utf8;
4. 데이터 삽입 - 회원 테이블
INSERT INTO member_table (company_code, mb_id, mb_pw, address, mb_tell) VALUE('035720', 'build', 'build1', '서울특별시 강남구 도곡동', '010-1234-1234');
INSERT INTO member_table (company_code, mb_id, mb_pw, address, mb_tell) VALUE('068270', 'talk', 'server2', '경기도 성남시 분당구', '010-2345-2345');
INSERT INTO member_table (company_code, mb_id, mb_pw, address, mb_tell) VALUE('035420', 'story', 'server3', '인천광역시 부평구 부평동', '010-3456-3456');
4. 데이터 삽입 - 회사 테이블
INSERT INTO company_table (company_code, korea_name, company_name, company_address) VALUE('035420', '네이버', 'NAVER', '경기도 성남시 분당구 불정로 6');
INSERT INTO company_table (company_code, korea_name, company_name, company_address) VALUE('035720', '카카오', 'KAKAO', '제주특별자치도 제주시 첨단로 242');
INSERT INTO company_table (company_code, korea_name, company_name, company_address) VALUE('068270', '셀트리온', 'CELLTRION', '인천광역시 연수구 아카데미로 23');
MySQL - 스칼라 서브쿼리(Scalar Subquery) 사용시 주의사항 |
1. 서브쿼리는 SELECT 문으로만 작성이 가능합니다
2. 서브쿼리는 ( ) - "괄호" 안에 작성해야 됩니다.
3. ORDER BY 절에서는 사용할수 없습니다.
MySQL - 스칼라 서브쿼리(Scalar Subquery) 사용법 |
스칼라 서브쿼리(Scalar Subquery)는 서브쿼리에서 나오는 결과의 값이 1개의 행이여야 되며, 2개 이상의 행이나 NULL 값을 사용할 수 없습니다.
1. 스칼라 서브쿼리(Scalar Subquery) 사용법
사용법 :
SELECT [컬럼명],
[컬럼명],
(Scalar Subquery),
[컬럼명],
FROM [Table Name]
2. 스칼라 서브쿼리(Scalar Subquery) 예시
SELECT mb_id,
address,
(SELECT korea_name FROM company_table b WHERE b.company_code = a.company_code),
mb_tell
FROM member_table a
위 내용의 메인쿼리와 서브쿼리는 member_table a와, company_table 를 b를 지정하여 2개의 테이블 company_code의 같은 값을 비교하여 korea_name을 출력하는 스칼라 서브쿼리(Scalar Subquery) 입니다.
3. 스칼라 서브쿼리(Scalar Subquery) 출력결과
+-------+-------------------------------------+--------------------------------------------------------------------------------+---------------+
| mb_id | address | (SELECT korea_name FROM company_table b WHERE b.company_code = a.company_code) | mb_tell |
+-------+-------------------------------------+--------------------------------------------------------------------------------+---------------+
| build | 서울특별시 강남구 도곡동 | 카카오 | 010-1234-1234 |
| talk | 경기도 성남시 분당구 | 셀트리온 | 010-2345-2345 |
| story | 인천광역시 부평구 부평동 | 네이버 | 010-3456-3456 |
+-------+-------------------------------------+--------------------------------------------------------------------------------+---------------+