SELECT cust_id FROM Orders WHERE order_num IN (20007,20008);
oust id
1000000004
1000000005
Keling, birinchisini (buyurtma raqamlarini qaytaruvchi) quyi so'rovga aylantirib, ushbu ikkita so'rovni birlashtiramiz.
SELECT cust_id FROM Orders WHERE order_num IN (SELECT order_num FROM OrderItems WHERE prod_id = ’RGAN01’);
Quyi so'rovlarni hisoblangan maydonlar sifatida ishlatish
Quyi so'rovlardan foydalanishning yana bir usuli hisoblangan maydonlarni yaratishdir. Aytaylik, siz Mijozlar jadvalidan har bir mijoz tomonidan berilgan buyurtmalarning umumiy sonini ko'rsatishni xohlaysiz. Buyurtmalar buyurtmalar jadvalida ularning mijoz identifikatorlari bilan birga saqlanadi.
Ushbu operatsiyani bajarish uchun siz quyidagilarni bajarishingiz kerak:
1) Customers jadvalidan mijozlar ro'yxatini olish;
2) har bir tanlangan mijoz uchun Orders jadvalida uning buyurtmalari sonini hisoblash
Yuqorida tushuntirilganidek, siz jadvaldagi qatorlarni hisoblash uchun SELECT COUNT (*) bayonotini chiqarishingiz mumkin va maʼlum bir mijoz identifikatorida filtrlash uchun WHERE bandidan foydalanib, faqat shu mijozning buyurtmalarini hisoblashingiz mumkin. Masalan, quyidagi so'rov 1000000001 mijoz tomonidan berilgan buyurtmalar sonini hisoblashi mumkin.
SELECT COUNT(*) AS orders FROM Orders WHERE oust id = '1000000001';
Har bir mijoz uchun COUNT(*) funksiyasidan foydalangan holda jami maʼlumotlarini olish uchun quyi soʻrov sifatida COUNT(*) ifodasidan foydalaning. Quyidagi misolni ko'rib chiqamiz.
SELECT cust_name, cust_state, (SELECT * COUNT(*) FROM Orders WHERE Orders.cust_id = Customers.cust_id) AS orders FROM Customers ORDER BY cust_name;
Natija:
|