012. JOIN
Bu mavzuda INNER, LEFT, RIGHT, FULL, CROSS va SELF JOIN bo'yicha 65 ta masala bor. Har bir masala oldida qavs ichida sxema nomi va qiyinlik darajasi ko'rsatilgan. Sxemalar Sxemalar va tayyorlov sahifasida berilgan.
Masalani o'zingiz yechib, natijani Kutilgan natija bilan solishtiring. O'zgartiruvchi masalalarda (INSERT, UPDATE, DELETE, DDL) natija shartda aytilgan tekshiruv so'rovidan olingan. Natija 10 qatordan ko'p bo'lsa, birinchi 10 qator ko'rsatilgan.
1. (dokon, oson) Buyurtma id va mijoz ismini chiqaring (INNER JOIN), birinchi 10 ta.
Kutilgan natija
2. (dokon, oson) Mahsulot nomi va kategoriya nomini chiqaring (birinchi 10).
Kutilgan natija
3. (dokon, oson) To'lov id, summa va buyurtma holatini chiqaring (birinchi 10).
Kutilgan natija
4. (dokon, oson) Har bir mijoz ismi va buyurtmalari sonini (LEFT JOIN, buyurtmasizlar ham 0 bilan) chiqaring, birinchi 10.
Kutilgan natija
5. (dokon, oson) Hech qachon buyurtma bermagan mijozlar id sini chiqaring (LEFT JOIN ... IS NULL).
6. (dokon, oson) Kategoriyalar bo'yicha mahsulotlar soni, mahsulotsiz kategoriya ham 0 bilan (nom, soni).
7. (dokon, oson) Hech qachon sotilmagan mahsulotlar id sini chiqaring.
8. (dokon, o'rta) To'lovi yo'q buyurtmalar id sini chiqaring.
9. (dokon, o'rta) Buyurtma elementlari: buyurtma id, mahsulot nomi, miqdor va qator summasi (miqdor*narx), birinchi 10.
Kutilgan natija
10. (dokon, o'rta) Har bir buyurtma jami summasi (element summalar yig'indisi), birinchi 10.
Kutilgan natija
11. (dokon, o'rta) Mijoz ismi bo'yicha jami sarflangan summa (buyurtma_element orqali, 'bekor' emas), eng ko'p 5 mijoz.
Kutilgan natija
12. (dokon, o'rta) Kategoriya nomi bo'yicha sotilgan jami miqdor.
13. (dokon, o'rta) Shahar bo'yicha buyurtmalar soni.
14. (dokon, o'rta) To'lov usuli va mijoz shahari bo'yicha to'lovlar jami (shahar, usul, jami).
Kutilgan natija
15. (dokon, o'rta) RIGHT JOIN bilan: barcha mahsulotlar va sotilgan elementlar soni (mahsulot id, soni), birinchi 8.
16. (dokon, qiyin) FULL JOIN: buyurtma va to'lov bo'yicha (buyurtma_id) mos kelmaydiganlar sonini chiqaring (to'lovsiz buyurtmalar + buyurtmasiz to'lovlar).
17. (dokon, qiyin) Mijoz bo'yicha buyurtmalar soni va to'lov jami (yo'q bo'lsa 0), birinchi 8 mijoz.
Kutilgan natija
18. (dokon, qiyin) CROSS JOIN: kategoriyalar va to'lov usullari (VALUES) kombinatsiyalari sonini chiqaring.
19. (dokon, qiyin) SELF JOIN: bir shaharda yashovchi mijoz juftliklari (id1<id2) sonini chiqaring.
20. (maktab, oson) O'quvchi ismi va sinf nomi (birinchi 10).
Kutilgan natija
21. (maktab, oson) Fan nomi va o'qituvchi ismi.
Kutilgan natija
22. (maktab, oson) Baho id, o'quvchi ismi, fan nomi, ball (birinchi 10).
Kutilgan natija
1 | Doniyor Ergashev | Tarix | 3
2 | Laylo Hasanova | Kimyo | 5
3 | Sherzod Ismoilov | Biologiya | 2
4 | Sevara Karimova | Ingliz tili | 4
5 | Aziz Ergashev | Fizika | 1
6 | Nilufar Hasanova | Informatika | 3
7 | Timur Ismoilov | Ona tili | 5
8 | Madina Karimova | Matematika | 2
9 | Doniyor Ergashev | Tarix | 4
10 | Laylo Hasanova | Kimyo | 1
23. (maktab, oson) Sinf nomi va sinf rahbari ismi.
Kutilgan natija
24. (maktab, oson) Fan o'tmaydigan o'qituvchilar ismini chiqaring (fani yo'q).
25. (maktab, o'rta) Sinf bo'yicha o'rtacha ball (sinf nomi, 2 xona).
26. (maktab, o'rta) O'qituvchi bo'yicha o'z fanidan berilgan baholar o'rtachasi (ism, 2 xona).
Kutilgan natija
27. (maktab, o'rta) Hech qachon baho olmagan o'quvchilar ismini chiqaring.
28. (maktab, o'rta) Sinf rahbari bo'lmagan o'qituvchilar soni.
29. (maktab, o'rta) O'quvchi bo'yicha 'kelmadi' lar soni (ism bilan, kelmaganlar), birinchi 8.
Kutilgan natija
30. (maktab, o'rta) Fan bo'yicha baho olgan o'quvchilar soni (nom, noyob o'quvchilar).
Kutilgan natija
31. (maktab, qiyin) SELF JOIN: bir sinfda o'qiydigan, bir xil jinsli o'quvchi juftliklari (id1<id2) soni.
32. (maktab, qiyin) FULL JOIN: sinf rahbarlari bilan o'qituvchilarni solishtirib, o'qituvchi ismi va sinf nomini chiqaring (sinfsiz o'qituvchi ham, birinchi 6 qator ism bo'yicha).
Kutilgan natija
33. (maktab, qiyin) Har bir sinf uchun eng yuqori o'rtacha ballga ega o'quvchi (sinf, ism, ortacha) — o'rtachalar JOIN bilan.
Kutilgan natija
34. (maktab, qiyin) CROSS JOIN: har bir sinf va fan uchun kutilgan baho juftliklari sonini (sinflar x fanlar) chiqaring.
35. (bank, oson) Mijoz ismi va filial nomi (birinchi 10).
Kutilgan natija
36. (bank, oson) Hisob id, turi va mijoz ismi (birinchi 10).
Kutilgan natija
37. (bank, oson) Qarz id, summa va mijoz ismi (birinchi 10).
Kutilgan natija
1 | 8000000.00 | Kamola Normatova
2 | 11000000.00 | Dildora Normatova
3 | 14000000.00 | Shahzoda Normatova
4 | 17000000.00 | Kamola Normatova
5 | 20000000.00 | Dildora Normatova
6 | 23000000.00 | Shahzoda Normatova
7 | 26000000.00 | Kamola Normatova
8 | 29000000.00 | Dildora Orifova
9 | 32000000.00 | Shahzoda Orifova
10 | 35000000.00 | Kamola Orifova
38. (bank, oson) Hisobi yo'q mijozlar ismini chiqaring.
Kutilgan natija
39. (bank, oson) Qarzi yo'q mijozlar soni.
40. (bank, o'rta) Filial bo'yicha jami balans (filial nomi, jami).
Kutilgan natija
41. (bank, o'rta) Shahar bo'yicha qarzlar soni va jami summa.
Kutilgan natija
42. (bank, o'rta) Mijoz bo'yicha jami balans va jami qarz (kamida bitta hisobi bor), birinchi 8.
Kutilgan natija
43. (bank, o'rta) Tranzaksiya bo'yicha mijoz ismi (hisob orqali), birinchi 8.
Kutilgan natija
44. (bank, o'rta) Mijoz bo'yicha kirim summasi jami (ism, jami), eng katta 5.
Kutilgan natija
45. (bank, o'rta) Filial bo'yicha 'kechikkan' qarzlar soni (barcha filiallar, 0 ham).
46. (bank, qiyin) SELF JOIN: bir filialdagi mijoz juftliklari (id1<id2) soni.
47. (bank, qiyin) Ham hisobi, ham qarzi bor mijozlar soni (INNER JOIN, DISTINCT).
48. (bank, qiyin) Har bir mijoz bo'yicha hisoblar soni va tranzaksiyalar soni (hisob orqali), tranzaksiyasi yo'q ham 0, birinchi 8.
49. (bank, qiyin) FULL JOIN: filiallar va ularning qarzli mijozlari — qarzga ega har bir filial uchun qarzlar soni (qarzsiz filial 0).
50. (bank, qiyin) CROSS JOIN: hisob turlari (jamgarma, joriy, depozit) va valyutalar (UZS, USD) kombinatsiyalari uchun hisoblar sonini (0 bo'lganlari ham) chiqaring.
Kutilgan natija
51. (kutubxona, oson) Kitob nomi va muallif ismi (birinchi 10).
Kutilgan natija
52. (kutubxona, oson) Kitob nomi va janr nomi (birinchi 10).
Kutilgan natija
53. (kutubxona, oson) Ijara id, kitob nomi va a'zo ismi (birinchi 10).
Kutilgan natija
1 | Kitob 8 sirlari | Ulugbek Sodiqova
2 | Kitob 15 dunyosi | Eldor Sodiqova
3 | Kitob 22 kuni | Bahrom Sodiqova
4 | Kitob 29 yoli | Munisa Sodiqova
5 | Kitob 36 sirlari | Zarina Sodiqova
6 | Kitob 3 dunyosi | Ulugbek Sodiqova
7 | Kitob 10 kuni | Eldor Sodiqova
8 | Kitob 17 yoli | Bahrom Sodiqova
9 | Kitob 24 sirlari | Munisa Aminov
10 | Kitob 31 dunyosi | Zarina Aminov
54. (kutubxona, oson) Hech qachon ijaraga olinmagan kitoblar soni.
55. (kutubxona, oson) Kitobi yo'q mualliflar ismi (LEFT JOIN).
56. (kutubxona, o'rta) Muallif bo'yicha kitoblar soni (ism, soni, 0 ham).
Kutilgan natija
57. (kutubxona, o'rta) Janr bo'yicha ijaralar soni.
58. (kutubxona, o'rta) Muallif davlati bo'yicha ijaralar soni.
59. (kutubxona, o'rta) Hech qachon ijara olmagan a'zolar ismi.
60. (kutubxona, o'rta) A'zo bo'yicha hozir qaytarmagan kitoblar nomi (a'zo ismi, kitob nomi).
Kutilgan natija
Zarina Sodiqova | Kitob 36 sirlari
Zarina Aminov | Kitob 31 dunyosi
Zarina Aminov | Kitob 26 kuni
Zarina Yoqubov | Kitob 21 yoli
Zarina Sodiqova | Kitob 16 sirlari
Zarina Sodiqova | Kitob 11 dunyosi
Zarina Aminov | Kitob 6 kuni
Zarina Aminov | Kitob 1 yoli
Zarina Yoqubov | Kitob 36 sirlari
Zarina Sodiqova | Kitob 31 dunyosi
61. (kutubxona, o'rta) Eng ko'p ijaraga olingan muallif (ism, soni).
62. (kutubxona, qiyin) SELF JOIN: bir muallifning kitoblaridan yili farqi 10 yildan kam bo'lgan juftliklar soni (id1<id2).
63. (kutubxona, qiyin) Bir kitobni ketma-ket ikki xil a'zo olgan hodisalarni toping: ikkita ijara (i1,i2), bir kitob, i2.olingan>i1.olingan, i1.azo_id<>i2.azo_id — juftliklar soni (i1 va i2 faqat kitob ichidagi ketma-ket emas, hammasi).
64. (kutubxona, qiyin) FULL JOIN: janrlar va kitoblar; kitobi yo'q janrlar ham chiqsin: janr nomi va kitoblar soni.
65. (kutubxona, qiyin) CROSS JOIN bilan har bir janr uchun barcha mualliflar kombinatsiyasidan, shu janrda kitobi bor-yo'q ('bor'/'yoq') bo'lgan juftliklar sonini chiqaring.