116. EXISTS va IN — qayta yozish
O'rtachaSubquery'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 shakliBu 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
| idINT | nameVARCHAR(60) |
|---|---|
| 1 | Aziz Karimov |
| 2 | Malika Yusupova |
| 6 | Dilnoza Toshpulatova |
restaurants
| idINT | titleVARCHAR(50) | kindVARCHAR(20) |
|---|---|---|
| 10 | Chopar Pizza | Pizza |
| 12 | Evos | Fastfood |
orders
| idINT | client_idINT | restaurant_idINT |
|---|---|---|
| 1 | 1 | 10 |
| 3 | 2 | 12 |
| 10 | 6 | 12 |
Kutilgan natija
| id | name |
|---|---|
| 1 | Aziz Karimov |
sample-full
clients
| idINT | nameVARCHAR(60) |
|---|---|
| 1 | Aziz Karimov |
| 2 | Malika Yusupova |
| 3 | Bekzod Rahimov |
| 4 | Nilufar Karimova |
| 5 | Jasur Abdullayev |
| 6 | Dilnoza Toshpulatova |
| 7 | Sardor Rahimov |
| 8 | Zilola Ergasheva |
restaurants
| idINT | titleVARCHAR(50) | kindVARCHAR(20) |
|---|---|---|
| 10 | Chopar Pizza | Pizza |
| 11 | Sette | Pizza |
| 12 | Evos | Fastfood |
| 13 | Oqtepa Lavash | Fastfood |
| 14 | Milliy Taomlar | National |
orders
| idINT | client_idINT | restaurant_idINT |
|---|---|---|
| 1 | 1 | 10 |
| 2 | 1 | 12 |
| 3 | 2 | 12 |
| 4 | 2 | 13 |
| 5 | 3 | 11 |
| 6 | 4 | 14 |
| 7 | 4 | 13 |
| 8 | 5 | 10 |
| 9 | 5 | 11 |
| 10 | 6 | 12 |
| 11 | 7 | 14 |
| 12 | 7 | 12 |
| 13 | 8 | 13 |
| 14 | 3 | 12 |
| 15 | 1 | 11 |
Kutilgan natija
| id | name |
|---|---|
| 1 | Aziz Karimov |
| 3 | Bekzod Rahimov |
| 5 | Jasur Abdullayev |
sample-extra
clients
| idINT | nameVARCHAR(60) |
|---|---|
| 4 | Zafar Tursunov |
| 1 | Rustam Tursunov |
| 2 | Feruza Yusupova |
| 3 | Laylo Raxmonova |
| 5 | Zarina Rahimova |
restaurants
| idINT | titleVARCHAR(50) | kindVARCHAR(20) |
|---|---|---|
| 3 | Sette | Pizza |
| 1 | Chopar Pizza | Fastfood |
| 2 | Milliy Taomlar | Pizza |
orders
| idINT | client_idINT | restaurant_idINT |
|---|---|---|
| 4 | 3 | 1 |
| 1 | 3 | 2 |
| 3 | 5 | 1 |
| 9 | 1 | 2 |
| 6 | 4 | 2 |
| 5 | 5 | 2 |
Kutilgan natija
| id | name |
|---|---|
| 1 | Rustam Tursunov |
| 3 | Laylo Raxmonova |
| 4 | Zafar Tursunov |
| 5 | Zarina Rahimova |
O'xshash masalalar
Konsol
Natijani ko'rish uchun so'rovni ishga tushiring.
