목차
2개 테이블 존재 가정
JOIN (= INNER JOIN) : 공통 레코드 기준 결합
LEFT JOIN : 왼쪽 기준으로 결합
RIGHT JOIN : 오른쪽 기준으로 결합
2개 테이블 존재 가정
[hz_member 테이블]
[
{ mb_id: 1, mb_name: 'AAA', mb_level: '1'},
{ mb_id: 2, mb_name: 'BBB', mb_level: '2'},
{ mb_id: 3, mb_name: 'CCC', mb_level: '3'},
{ mb_id: 4, mb_name: 'DDD', mb_level: '4'},
{ mb_id: 5, mb_name: 'EEE', mb_level: '5'}
]
[mb_point 테이블 가정]
[
{ mb_id: 1, mb_point: '100'},
{ mb_id: 2, mb_point: '200'},
{ mb_id: 6, mb_point: '600'},
]
※ 빨간색 부분은 두 테이블 연결고리가 존재 X
JOIN (= INNER JOIN) : 공통 레코드 기준 결합
1. C:\User\사용자명\hz.js 생성. (5개의 첫 번째 데이터 출력)
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "autoset",
database: "hz "
});
con.connect(function(err) {
if (err) throw err;
var sql = "SELECT hz_member.mb_name AS user, mb_point.point AS point FROM hz_member JOIN mb_point ON hz_member.mb_id = mb_point.mb_id";
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
});
2. CMD 모드에서 아래 명령어 입력해 시작 설정.
C:\User\사용자명>node hz.js
[반환값]
[
RowDataPacket { user: 'AAA', point: 100 },
RowDataPacket { user: 'BBB', point: 200 }
]
참고 : JOIN 대신 INNER JOIN을 사용 가능. 둘 다 동일.
LEFT JOIN : 왼쪽 기준으로 결합
var sql = "SELECT hz_member.mb_name AS user, mb_point.point AS point FROM hz_member LEFT JOIN mb_point ON hz_member.mb_id = mb_point.mb_id";
[반환값]
[
RowDataPacket { user: 'AAA', point: 100 },
RowDataPacket { user: 'BBB', point: 200 },
RowDataPacket { user: 'CCC', point: null },
RowDataPacket { user: 'DDD', point: null },
RowDataPacket { user: 'EEE', point: null }
]
RIGHT JOIN : 오른쪽 기준으로 결합
var sql = "SELECT hz_member.mb_name AS user, mb_point.point AS point FROM hz_member RIGHT JOIN mb_point ON hz_member.mb_id = mb_point.mb_id";
[반환값]
[
RowDataPacket { user: 'AAA', point: 100 },
RowDataPacket { user: 'BBB', point: 200 },
RowDataPacket { user: null, point: 600 }
]
주소 복사
랜덤 이동
최신댓글