• Q&A
  • 회원가입
  • 로그인

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

5  

 

 
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'},

]

 

 

 

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 }

]

 



방문자 수

오늘 209
어제 2,214
최대 2,397
이달 49,639
전체 997,385
Since 2012