Ichki so‘rovlar
1410 daq
Ichki so‘rov (subquery) — boshqa so‘rov ichiga qavs bilan yozilgan so‘rov. U avval bajariladi va natijasini tashqi so‘rovga beradi.
Bitta qiymat qaytaradigan ichki so‘rov
«O‘rtachadan yuqori maosh oladigan ustozlar» — o‘rtachani oldindan bilmaymiz, lekin baza hisoblab bera oladi:
Ichki so‘rov bitta son qaytaradi, tashqi so‘rov u bilan solishtiradi.
Ro‘yxat qaytaradigan ichki so‘rov: IN
«Kamida bitta 95+ baho olgan talabalar»:
Ichki so‘rov bir nechta qator qaytarsa,
=emas,INishlating.=bilan baza «subquery returns more than one row» xatosini beradi.
EXISTS — «bormi?»
EXISTS ichki so‘rov kamida bitta qator qaytarsa, to‘g‘ri bo‘ladi. Ko‘pincha tashqi qatorga bog‘lanadi:
Hech qachon sotilmagan mahsulotlar. SELECT 1 — ichida nima qaytishi muhim emas, faqat bor-yo‘qligi.
Bog‘langan (correlated) ichki so‘rov
Ichki so‘rov tashqi qatorning qiymatidan foydalanadi va har bir qator uchun qaytadan bajariladi. «O‘z toifasidagi o‘rtacha narxdan qimmat mahsulotlar»:
FROM ichida ichki so‘rov
Natijani vaqtinchalik jadvaldek ishlatish mumkin. Unga albatta taxallus beriladi:
O‘rtacha kreditdan ko‘p kreditli fanlarning name va credits ustunlarini chiqaring.
Kamida bitta safar qilgan yo‘lovchilar nechta? IN yoki EXISTS dan foydalaning.
Esda qoldiring
- Bitta qiymat —
=,>bilan; ro‘yxat —INbilan. EXISTS/NOT EXISTS— bor-yo‘qligini tekshiradi.FROMdagi ichki so‘rovga taxallus shart.