MySQL JOIN
Ikki yoki undan ortiq jadvalga qo‘shiling
Ikki yoki undan ortiq jadvaldagi stringlarni tegishli ustun asosida birlashtirishingiz mumkin ular orasida JOIN iborasi yordamida.
Sizda "foydalanuvchilar" jadvali va "mahsulotlar" jadvali borligini ko‘rib chiqing:
foydalanuvchilar
[
{ 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:}
]
mahsulotlar
[
{ id: 154, name:
'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{
id: 156, name: 'Vanilla Dreams' }
]
Ushbu ikkita jadvalni foydalanuvchilarning favorite_product maydoni va mahsulotlari yordamida birlashtirish mumkin.
id maydoni.
Misol
Ikkala jadvalda mos keladigan yozuvlarni tanlang:
let mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
let
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);
});
});
Misolni ishga tushirish »
Eslatma: JOIN o‘rniga INNER JOIN dan foydalanishingiz mumkin. Ular qiladi ikkalasi ham bir xil natija beradi.
Yuqoridagi kodni "demo_db_join.js" nomli faylga saqlang va faylni ishga tushiring:
"demo_db_join.js" ni ishga tushiring
C:\Users\Your Name>node demo_db_join.js
Bu sizga bu natijani beradi:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' }
]
Yuqoridagi natijadan ko‘rinib turibdiki, faqat ikkalasida ham mos keladigan rekordlar jadvallar qaytariladi.
Chapga qo‘shilish
Agar siz barcha foydalanuvchilarni qaytarishni istasangiz, ularning sevimli mahsuloti yoki emas, LEFT JOIN iborasidan foydalaning:
Misol
Barcha foydalanuvchilarni va ularning sevimli mahsulotlarini tanlang:
SELECT users.name AS user,
products.name AS favorite
FROM users
LEFT
JOIN products ON users.favorite_product = products.id
Misolni ishga tushirish »
Bu sizga bu natijani beradi:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' },
{
user: 'Hannah', favorite: null },
{ user: 'Michael', favorite: null }
]
To‘g‘ri qo‘shilish
Agar siz barcha mahsulotlarni va ularga ega bo‘lgan foydalanuvchilarni qaytarib berishni istasangiz Sevimlilar, hattoki hech bir foydalanuvchi ularni sevimli deb hisoblamasa ham, O‘RG‘A QO‘SHILIShdan foydalaning operator:
Misol
Barcha mahsulotlarni va ularga sevimli bo‘lgan foydalanuvchini tanlang:
SELECT users.name AS user,
products.name AS favorite
FROM users
RIGHT
JOIN products ON users.favorite_product = products.id
Misolni ishga tushirish »
Bu sizga bu natijani beradi:
[
{ user: 'John', favorite:
'Chocolate Heaven' },
{ user: 'Peter', favorite: 'Chocolate Heaven' },
{
user: 'Amy', favorite: 'Tasty Lemons' },
{
user: null, favorite: 'Vanilla Dreams' }
]
Eslatma: Sevimli mahsuloti bo‘lmagan Xanna va Maykl natijaga kiritilmagan.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
