OUTER JOIN
Oldingi mavzuda jadvallarning ichki birikmasi muhokama qilingan. Ammo MS SQL Server tashqi qo'shilish yoki tashqi ulanishni ham qo'llab-quvvatlaydi. Ichki birlashmadan farqli o'laroq, tashqi birlashma qo'shilishda ishtirok etadigan bir yoki ikkita jadvalning barcha qatorlarini qaytaradi.
Outer Join quyidagi rasmiy sintaksisga ega:
JOIN operatori oldidan qo‘shilish turini aniqlovchi LEFT, RIGHT yoki FULL kalit so‘zlardan biri joylashgan:
CHAP: tanlov birinchi yoki chap jadvaldagi barcha qatorlarni o'z ichiga oladi
O'NG: tanlov ikkinchi yoki o'ng jadvaldagi barcha qatorlarni o'z ichiga oladi
FULL: tanlov ikkala jadvaldagi barcha qatorlarni o'z ichiga oladi
OUTER kalit so'zi JOIN operatoridan oldin ham bo'lishi mumkin, lekin bu shart emas. Keyin JOIN dan keyin birlashtiriladigan jadval ko'rsatiladi, keyin esa qo'shilish sharti keladi.
Masalan, Buyurtmalar va Mijozlar jadvallariga qo'shilamiz:
Buyurtmalar jadvali birinchi yoki chap jadval va mijozlar jadvali o'ng jadvaldir. Shuning uchun, bu erda chap jadvalda tanlov ishlatilganligi sababli, birinchi navbatda Buyurtmalardagi barcha qatorlar tanlanadi, so'ngra ularga Orders.CustomerId = Customers.Id shartiga muvofiq Mijozlarning tegishli qatorlari qo'shiladi.
Yuqoridagi natijaga ko'ra, chap qo'shilish INNER qo'shilishga o'xshaydi, lekin unday emas. Shart bajarilganda Inner Join arvoh jadvallari qatorlarini birlashtiradi. Agar jadvallardan birida ushbu shartga mos kelmaydigan qatorlar mavjud bo'lsa, u holda bu qatorlar chiqish tanloviga kiritilmaydi. Left Join birinchi jadvaldagi barcha satrlarni tanlaydi va keyin o'ng jadvaldagi qatorlarni ularga birlashtiradi. Misol uchun, mijozlar jadvalini olaylik va ularning buyurtmalari haqida ma'lumotlarni mijozlarga qo'shamiz:
Yuqoridagi misolda ulanish turini o'ng qo'lga o'zgartiring:
Endi Mijozlarning barcha qatorlari tanlanadi va Buyurtmalar jadvalidagi shartlar bo'yicha bog'langan qatorlar ularga biriktiriladi:
Mijozlar jadvalidagi mijozlardan birining Buyurtmalardan bog'langan buyurtmalari yo'qligi sababli, Buyurtmalardan olingan tegishli ustunlar NULL bo'ladi.
Buyurtmalarga foydalanuvchi va mahsulot ma'lumotlarini qo'shish uchun chap qo'shilishdan foydalanamiz:
Bundan tashqari, filtrlash va saralash bilan yanada murakkab shartlarni qo'llashingiz mumkin. Masalan, narxi 45000 dan past bo'lgan mahsulotlar uchun mijozlar va mahsulotlar haqidagi ma'lumotlarga ega barcha buyurtmalarni tanlaymiz va buyurtma sanasi bo'yicha saralaymiz:
Yoki Buyurtmalar jadvalida buyurtmalari bo'lmagan barcha foydalanuvchilarni Mijozlardan tanlang:
Shuningdek, siz ichki va tashqi qo'shilishni birlashtira olasiz:
Birinchidan, shartga ko'ra, Mahsulotlardagi tegishli ma'lumotlar Ichki qo'shilish orqali Buyurtmalar jadvaliga qo'shiladi, so'ngra Mijozlar jadvalidagi ma'lumotlar tashqi qo'shilish orqali qo'shiladi.
Do'stlaringiz bilan baham: |