Node.js MySQL Gabung
Gabung Dua atau Lebih Tabel
Anda dapat menggabungkan baris dari dua tabel atau lebih, berdasarkan kolom terkait di antara keduanya, dengan menggunakan pernyataan GABUNG.
Pertimbangkan Anda memiliki tabel "pengguna" dan tabel "produk":
pengguna
[
{ 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:}
]
produk
[
{ id: 154, name:
'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{
id: 156, name: 'Vanilla Dreams' }
]
Kedua tabel ini dapat digabungkan dengan menggunakan bidang pengguna favorite_product
dan bidang produk
id
.
Contoh
Pilih rekaman dengan kecocokan di kedua tabel:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
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);
});
});
Catatan: Anda dapat menggunakan INNER JOIN daripada JOIN. Keduanya akan memberi Anda hasil yang sama.
Simpan kode di atas dalam file bernama "demo_db_join.js" dan jalankan file tersebut:
Jalankan "demo_db_join.js"
C:\Users\Your Name>node demo_db_join.js
Yang akan memberi Anda hasil ini:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' }
]
Seperti yang Anda lihat dari hasil di atas, hanya catatan dengan kecocokan di kedua tabel yang dikembalikan.
Gabung Kiri
Jika Anda ingin mengembalikan semua pengguna, tidak peduli apakah mereka memiliki produk favorit atau tidak, gunakan pernyataan LEFT JOIN:
Contoh
Pilih semua pengguna dan produk favorit mereka:
SELECT users.name AS user,
products.name AS favorite
FROM users
LEFT
JOIN products ON users.favorite_product = products.id
Yang akan memberi Anda hasil ini:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' },
{
user: 'Hannah', favorite: null },
{ user: 'Michael', favorite: null }
]
Gabung Kanan
Jika Anda ingin mengembalikan semua produk, dan pengguna yang menjadikannya sebagai favorit, meskipun tidak ada pengguna yang menjadikannya sebagai favorit, gunakan pernyataan RIGHT JOIN:
Contoh
Pilih semua produk dan pengguna yang menjadikannya sebagai favorit:
SELECT users.name AS user,
products.name AS favorite
FROM users
RIGHT
JOIN products ON users.favorite_product = products.id
Yang akan memberi Anda hasil ini:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' },
{
user: null, favorite: 'Vanilla Dreams' }
]
Catatan: Hannah dan Michael, yang tidak memiliki produk favorit, tidak termasuk dalam hasil.