Joketext = Нима учун жўжа йўлни кесиб ўтди? Йўлнинг нариги томонига
Download 303.59 Kb. Pdf ko'rish
|
5-amaliy MB
Бир неча сўровларни ҳосил қилиш
Юқорида санаб ўтилган қадамларнинг ҳар бирини алоҳида сўров кўринишида бажариш мумкин. Бунда бир неча SELECT инструкциясидан фойдаланилади, яъни битта SELECT инструкциясидан олинган натижалардан кейинги SELECT инструкциясининг WHERE конструкциясини тўлдиришда фойдаланилади. Лекин, бу учала сўровни битта ягона инструкцияга бирлаштириш мумкин. Биринчи SELECT инструкцияси prod_id устунида идентификатори RGAN01 бўлганмаҳсулотни ўз ичига олган order_num устунидаги барча буюртмалар номерини чиқариб беради: SELECT order_num FROM OrderIte ms WHERE prod_id= 'RGAN01'; Натижа бу маҳсулотни ўз ичига олган буюртмалар номери иккита эканлигини кўрсатади : order_num ---------------- 20 007 20008 122 Кейинги қадам 20007 ва 20008 буюртмалар билан боғлиқ бўлган мижозларнинг идентификаторини олишдан иборат. IN операторидан фойдаланиб қуйидаги SELECT инструкциясини ҳосил қиламиз: SELECT cust_id FROM Orders WHERE order_num IN (20007,20008) ; Натижа қуйидагича бўлади: cust_id ---------------- 10 00000004 10 00000005 Энди биринчи сўровни сўров остига айлантириб, бу иккала сўровни бирлаштирамиз: SELECT cust_id FROM Orders WHERE order_num IN (SELECT order_num FROM OrderIte ms WHERE prod_id= 'RGAN01'); Натижа яна юқоридаги натижа билан бир хил бўлади: cust_id ---------------- 1000000004 1000000005 Сўров ичидаги сўровларда аввал ички сўров бажарилади, юқоридаги мисолга эътибор берсак, МББТ икки амални бажаради. У аввал қуйидаги сўров остини (ички сўровни) бажаради: SELECTorder_numFROMOrderItems WHEREprod_id= 'RGAN01' Натижада иккита 20007 ва 20008 буюртма номерлари чиқариб берилади. Кейин бу икки қиймат ташқи сўровдаги WHERE конструкциясидаги IN операторига узатилади. Энди ташқи сўров қуйидаги кўринишда бўлади: SELECT cust_idFROM OrdersWHERE order_num IN ( 20007,20008) Энди 3-қадамда 2-қадамда идентификатори олинган барча мижозлар ҳақидаги маълумотни чиқаришдан иборат: SELECT cust_name, cust_contact FROM Customers WHERE cust_id IN ( '1000000004', '1000000005'); Бунда ҳам '1000000004' ва '1000000005' идентификаторларни кўрсатмасдан, уларни ўрнига WHERE конструкциясини ташқи сўровга айлантириш мумкин. Download 303.59 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling