Asosiy matnga o'tish

116. EXISTS va IN — qayta yozish

O'rtacha
Subquery'larExpress24

Kamida bir marta Pizza turkumidagi restorandan buyurtma qilgan

mijozlarni toping.

Bu masalani ikki xil yozish mumkin:

WHERE c.id IN (SELECT o.client_id FROM ...)      -- IN shakli
WHERE EXISTS (SELECT 1 FROM ... WHERE o.client_id = c.id)  -- EXISTS shakli

Bu yerda client_id hech qachon NULL emas, shuning uchun ikkalasi ham

bir xil natija beradi. Ikkalasini ham yozib ko'ring — judge natijani

tekshiradi, shaklini emas.

Ustunlar: id, name.

Saralash: id o'sish.

clients: id INT PK, name VARCHAR

restaurants: id INT PK, title VARCHAR, kind VARCHAR

orders: id INT PK, client_id INT NOT NULL, restaurant_id INT NOT NULL

Namuna ma'lumotlar

sample
clients
idINTnameVARCHAR(60)
1Aziz Karimov
2Malika Yusupova
6Dilnoza Toshpulatova
restaurants
idINTtitleVARCHAR(50)kindVARCHAR(20)
10Chopar PizzaPizza
12EvosFastfood
orders
idINTclient_idINTrestaurant_idINT
1110
3212
10612
Kutilgan natija
idname
1Aziz Karimov
sample-full
clients
idINTnameVARCHAR(60)
1Aziz Karimov
2Malika Yusupova
3Bekzod Rahimov
4Nilufar Karimova
5Jasur Abdullayev
6Dilnoza Toshpulatova
7Sardor Rahimov
8Zilola Ergasheva
restaurants
idINTtitleVARCHAR(50)kindVARCHAR(20)
10Chopar PizzaPizza
11SettePizza
12EvosFastfood
13Oqtepa LavashFastfood
14Milliy TaomlarNational
orders
idINTclient_idINTrestaurant_idINT
1110
2112
3212
4213
5311
6414
7413
8510
9511
10612
11714
12712
13813
14312
15111
Kutilgan natija
idname
1Aziz Karimov
3Bekzod Rahimov
5Jasur Abdullayev
sample-extra
clients
idINTnameVARCHAR(60)
4Zafar Tursunov
1Rustam Tursunov
2Feruza Yusupova
3Laylo Raxmonova
5Zarina Rahimova
restaurants
idINTtitleVARCHAR(50)kindVARCHAR(20)
3SettePizza
1Chopar PizzaFastfood
2Milliy TaomlarPizza
orders
idINTclient_idINTrestaurant_idINT
431
132
351
912
642
552
Kutilgan natija
idname
1Rustam Tursunov
3Laylo Raxmonova
4Zafar Tursunov
5Zarina Rahimova

O'xshash masalalar

Konsol

Natijani ko'rish uchun so'rovni ishga tushiring.