JOIN operatori bir nechta jadvalni birlashtiradi.
INNER JOIN
Ikkala jadvalda mos qator bo'lgandagina natijaga kiritiladi:
SELECT
m.ism,
m.familiya,
b.kurs_nomi,
b.baho
FROM talabalar m
INNER JOIN baholar b ON m.id = b.talaba_id;
LEFT JOIN
Chap jadvaldagi barcha qatorlar + o'ng jadvaldan mos kelganlar:
-- Hech qanday buyurtma bermagan mijozlar ham ko'rinadi
SELECT
m.ism,
COUNT(b.id) AS buyurtmalar_soni
FROM mijozlar m
LEFT JOIN buyurtmalar b ON m.id = b.mijoz_id
GROUP BY m.id, m.ism
ORDER BY buyurtmalar_soni DESC;
Bir nechta JOIN
SELECT
t.ism,
k.kurs_nomi,
o.ism AS oqituvchi,
b.baho
FROM talabalar t
INNER JOIN yozilishlar y ON t.id = y.talaba_id
INNER JOIN kurslar k ON y.kurs_id = k.id
INNER JOIN oqituvchilar o ON k.oqituvchi_id = o.id
LEFT JOIN baholar b ON y.id = b.yozilish_id;
SELF JOIN
Jadvalning o'zi bilan qo'shish:
-- Har bir xodim va uning rahbari
SELECT
x.ism AS xodim,
r.ism AS rahbar
FROM xodimlar x
LEFT JOIN xodimlar r ON x.rahbar_id = r.id;