Xem mục lục lập trình NodeJS
- Đăng ký kênh tại đây: https://www.youtube.com/channel/UCXjV9sLt3WgamL7vofLofow?sub_confirmation=1
- Trang fan page: https://www.facebook.com/lophocvitinhcom
- Trang web: http://lophocvitinh.com
01-Nối 02 hay nhiều bảng
Bạn có thể nối các dòng tin từ 02 hay nhiều bảng, dựa trên các cột liên quan giữa chúng bằng câu lệnh JOINGiả sử ta có 01 bảng tên “users” và 01 bảng tên “products”
Users
[
{ id: 1, name: 'John', favorite_product: 154},
{ id: 2, name: 'Peter', favorite_product: 154},
{ id: 3, name: 'Amy', favorite_product: 155},
{ id: 4, name: 'Hannah', favorite_product:},
{ id: 5, name: 'Michael', favorite_product:}
]
Products
[
{ id: 154, name: 'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{ id: 156, name: 'Vanilla Dreams' }
]
02 bảng này có thể nối với nhau thông qua trường favorite products của bảng users và trường id của bảng products.
Ví dụ: chọn các dòng tin khớp cả 02 bảng
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "nodejs"
});
con.connect(function(err) {
if (err) throw err;
var sql = "SELECT users.name AS user, products.name AS favorite FROM users JOIN products ON users.favorite_product = products.id";
con.query(sql, function (err, result) {
if (err) throw err;
console.log(result);
});
});
Ghi chú: bạn có thể dùng INNER JOIN thay vì JOIN. Cả 02 đều cho ra kết quả như nhau.
Lưu đoạn mã trên thành tập tin “demo_db_join.js” và chạy nó.
D:/NODE/node demo_db_join.js
Kết quả trả ra CMD sẽ là:
[
{ user: 'John', favorite: 'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{ user: 'Amy', favorite: 'Tasty Lemons' }
]
02-Left Join
Nếu bạn muốn trả về tất cả users, không quan trọng là có favorite product hay không, dùng câu lệnh LEFT JOINVí dụ: chọn tất cả users và giá trị favorite product của chúng
SELECT users.name AS user,
products.name AS favorite
FROM users
LEFT JOIN products ON users.favorite_product = products.id
Kết quả trả ra CMD sẽ là:
[
{ user: 'John', favorite: 'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{ user: 'Amy', favorite: 'Tasty Lemons' },
{ user: 'Hannah', favorite: null },
{ user: 'Michael', favorite: null }
]
03-Right Join
Nếu bạn muốn trả về tất cả products, và các users có favorite, hoặc ngay cả các users không có favorite => dùng câu lệnh RIGHT JOINVí dụ:
SELECT users.name AS user,
products.name AS favorite
FROM users
RIGHT JOIN products ON users.favorite_product = products.id
Kết quả trả ra CMD sẽ là:
[
{ user: 'John', favorite: 'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{ user: 'Amy', favorite: 'Tasty Lemons' },
{ user: null, favorite: 'Vanilla Dreams' }
]
Ghi chú: Hannah và Michael, không có favorite product=> không đưa vào kết quả trả về.
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
Xem mục lục lập trình NodeJS
- Đăng ký kênh tại đây: https://www.youtube.com/channel/UCXjV9sLt3WgamL7vofLofow?sub_confirmation=1
- Trang fan page: https://www.facebook.com/lophocvitinhcom
- Trang web: http://lophocvitinh.com
By #drM
Không có nhận xét nào:
Đăng nhận xét