|
Murakkab so`rovlar yaratish. Jadvallarni jamlashtirish
|
bet | 9/10 | Sana | 11.12.2023 | Hajmi | 34,52 Kb. | | #116098 |
Bog'liq Baza WHERE City = 'London'
UNION
SELECT CNum, CName FROM Customers
WHERE City = 'London';
Ikki yoki undan ortiq jadvallar jamlanganda ularning chiqish ustunlari jamlash uchun o‘zaro muvofiq bo‘lishi kerak. Bu shuni bildiradiki, xar bir so‘rov bir xil sondagi ustunlarni ko‘rsatib, bu ustunlar mos tartibda kelishi va xar biriga mos tiplarga ega bo‘lishi kerakyu Sonli maydonlar bir xil tipga va kattalikka ega bo‘lishi kerak. Simvolli maydonlar bir xil sondagi simvollarga ega bo‘lishi kerak. Moslik ta’minlovchi yana bir shart bo‘sh (NULL) qiymatlar jamlanma ixtiyoriy ustunida man etilgan bo‘lishi kerak. Bu qiymatlar boshqa jamlovchi so‘rovlarda xam man etilgan bo‘lishi kerak. Bundan tashqari siz ostki so‘rovlarda UNION operatoridan, xamda jamlovchi so‘rov SELECT operatorida agregat funksiyalardan foydalanishingiz mumkin emas. Siz individual so‘rovlardagi kabi natijani tartiblash uchun ORDER BY operatoridan foydalanishingiz mumkin. Jamlanma ustunlari chiqarish ustunlari bo‘lgani 4chun ulapr nomlarga ega bo‘lmaydi, shuning uchun nomeriga qarab aniqlanishi lozim. Demak ORDER BY operatorida ustun nomeri ko‘rsatilishi lozim. Foydali jamlanmalardan biri ikki so‘rovnni jamlashda ikkinchi so‘rov birinchi so‘rov chiqarib tashlagan satrlarni tanlashidir. Bu tashqi jamlanma deyiladi.
Misol: O‘z shaxarlarida buyurtmachilarga ega yoki ega emasligini ko‘rsatgan xolda xamma sotuvchilarni chiqarish.
SELECT Salepeople.SNum, SName, CName, Comm FROM Salepeople, Customers
WHERE Salepeople.City = Customers.City
UNION
SELECT SNum, SName, 'NO MATCH', Comm FROM Salepeople
WHERE NOT City = ANY ( SELECT City FROM Customers )
ORDER BY 2 DESC;
Xar gal bir necha so‘rovlarni jamlaganda yumaloq qavslar yordamida baxolash mezonini ko‘rsatishingiz mumkin. YA’ni
query X UNION query Y UNION query Z;
o‘rniga, yoki
( query X UNION query Y )UNION query Z;
yoki
|
| |