Asosiy matnga o'tish

124. Zaxira qiymatlar zanjiri

Qiyin
Subquery'larmy.gov.uz

Har bir fuqaro uchun bitta aloqa ma'lumotini tanlang. Ustuvorlik tartibi:

  1. mobil telefon (kind = 'MOBILE')
  2. uy telefoni (kind = 'HOME')
  3. elektron pochta (kind = 'EMAIL')
  4. hech biri yo'q bo'lsa — no contact matni

Har bir bosqichni alohida skalyar ichki so'rov bilan oling va ularni

COALESCE zanjiriga joylang. Bo'sh ichki so'rov NULL qaytaradi —

COALESCE shuning uchun keyingisiga o'tadi.

Bir turdan bir nechta yozuv bo'lsa, id eng kichigi olinsin.

Ustunlar: id, name, contact.

Saralash: id o'sish.

citizens: id INT PK, name VARCHAR

contacts: id INT PK, citizen_id INT, kind VARCHAR, value VARCHAR

Jadval: citizens

UstunTuri
idINT PK
nameVARCHAR(60)

Jadval: contacts

UstunTuri
idINT PK
citizen_idINT
kindVARCHAR(10)
valueVARCHAR(60)

Namuna ma'lumotlar

sample
citizens
idINTnameVARCHAR(60)
1Aziz Karimov
3Bekzod Rahimov
5Jasur Abdullayev
contacts
idINTcitizen_idINTkindVARCHAR(10)valueVARCHAR(60)
11MOBILE+998901234567
53EMAILbekzod@example.com
Kutilgan natija
idnamecontact
1Aziz Karimov+998901234567
3Bekzod Rahimovbekzod@example.com
5Jasur Abdullayevno contact
sample-full
citizens
idINTnameVARCHAR(60)
1Aziz Karimov
2Malika Yusupova
3Bekzod Rahimov
4Nilufar Karimova
5Jasur Abdullayev
6Dilnoza Toshpulatova
7Sardor Rahimov
8Zilola Ergasheva
contacts
idINTcitizen_idINTkindVARCHAR(10)valueVARCHAR(60)
11MOBILE+998901234567
21EMAILaziz@example.com
32HOME+998712345678
42EMAILmalika@example.com
53EMAILbekzod@example.com
64MOBILE+998933456789
74HOME+998712223344
84MOBILE+998944567890
96HOME+998715556677
107EMAILsardor@example.com
117EMAILs.rahimov@example.com
128MOBILE+998977890123
Kutilgan natija
idnamecontact
1Aziz Karimov+998901234567
2Malika Yusupova+998712345678
3Bekzod Rahimovbekzod@example.com
4Nilufar Karimova+998933456789
5Jasur Abdullayevno contact
6Dilnoza Toshpulatova+998715556677
7Sardor Rahimovsardor@example.com
8Zilola Ergasheva+998977890123
sample-extra
citizens
idINTnameVARCHAR(60)
2Diyor Ismoilov
1Islom Abdullayev
contacts
idINTcitizen_idINTkindVARCHAR(10)valueVARCHAR(60)
21MOBILE+998977890123
11EMAILaziz@example.com
Kutilgan natija
idnamecontact
1Islom Abdullayev+998977890123
2Diyor Ismoilovno contact

O'xshash masalalar

Konsol

Natijani ko'rish uchun so'rovni ishga tushiring.