NodeJS

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

2,130
목차
  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 }

]

 



분류 제목
basic Node.js - Home
basic Node.js - Intro (소개)
basic Node.js - Start (시작) - 사용 환경 구축
basic Node.js - Modules (모듈)
basic Node.js - HTTP Module (데이터 전송 모듈)
basic Node.js - File System Module (파일 시스템 모듈)
basic Node.js - URL Module (주소 처리 모듈)
basic Node.js - NPM (노드 패키지 관리자)
basic Node.js - Events (이벤트)
basic Node.js - Upload Files (파일 업로드) 2
basic Node.js - Email (이메일 보내기)
mysql Node.js - MySQL 설치・연결 + 쿼리 보내기
mysql Node.js - MySQL Create Database (DB 생성)
mysql Node.js - MySQL Create Table (테이블 생성) ※ Primary key 설정.
mysql Node.js - MySQL Insert Into (데이터 삽입)
1/5
목록
 홈  PC버전 로그인 일본어
웹디자인언어 2
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 2
웹유틸
회원센터
홈짱 PC버전 로그인