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;