MySQL JOIN


ULASHISH

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!