• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mysql] Node.js - MySQL Join (테이블 결합)

2,464  
목차
  1. 2개 테이블 존재 가정
  2. JOIN (= INNER JOIN) : 공통 레코드 기준 결합
  3. LEFT JOIN : 왼쪽 기준으로 결합
  4. 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 }

]

 



분류 제목
module Node.js - v8 모듈 - V8 (JS엔진)에 대한 정보에 접근.
module Node.js - vm 모듈 - 가상 머신에서 JS코드를 컴파일.
module Node.js - zlib 모듈 - 파일 압축 + 압축 해제
4/4
목록
찾아주셔서 감사합니다. Since 2012