Bir nechta jadval va self join
138 daq
Ko‘p savollar ikki emas, uch-to‘rt jadvalni talab qiladi. Ba’zan esa jadvalni o‘zi bilan ulash kerak bo‘ladi.
Ketma-ket JOIN
Har bir JOIN natijaga yana bitta jadvalni qo‘shadi. Talaba → guruh → fakultet:
Oraliq jadval orqali (M:N) — talaba, fan va baho:
Har bir JOIN uchun alohida ON yoziladi. Zanjirni sxema bo‘yicha quring: qaysi jadvaldan boshlasangiz, keyingisi unga ulanadigan bo‘lsin.
Self join — jadvalni o‘zi bilan ulash
company bazasida har bir xodimning rahbari ham employees jadvalining o‘zida turadi (manager_id). Xodim va rahbarini yonma-yon ko‘rish uchun jadvalni ikki marta, ikki xil taxallus bilan olamiz:
e — xodim sifatida, m — rahbar sifatida. Taxallussiz bu so‘rovni yozib bo‘lmaydi.
Ko‘p jadvalli hisob
To‘rt jadval: buyurtma qatorlari → buyurtmalar → mahsulotlar → toifalar. Yetkazilgan buyurtmalardan har bir toifa tushumi:
Har bir bahoning score qiymatini, talabaning first_name ini va fan nomini (subjects.name) chiqaring.
Har bir xodim uchun uning first_name va rahbarining first_name ini chiqaring (rahbari bor xodimlar uchun).
Har bir yakunlangan safar uchun haydovchining first_name i, mashinaning model i va fare ni chiqaring.
Esda qoldiring
- Har bir qo‘shimcha jadval — yana bitta
JOIN … ON …. - Self join: bitta jadval, ikki xil taxallus.
- So‘rov yozishdan oldin sxemada «yo‘l»ni toping.