SQL Bog’lanishlar (JOINS) 2-qism

FULL (OUTER) JOIN

SQL tilidagi navbatdagi bog'lanish turi to'liq bog'lanish hisoblanadi va FULL JOIN kalit so'zi yordamida ishlatiladi. Ushbu kalit so'z yordamida yozilgan SQL so'rovi ikkala jadvaldagi barcha mos yoki mos bo'lmagan qatorlarini tanlab beradi. Sintaksisi quyidagicha:

SELECT ustun_nom(lar)i FROM jadval1 FULL OUTER JOIN jadval2
ON jadval1.ustun_nomi = jadval2.ustun_nomi WHERE shartli_ifoda;

Xaridorlar jadvali:

Maqolalar jadvali:

SELECT Xaridorlar.XaridorId, Maqolalar.MaqolaId FROM Xaridorlar FULL JOIN Maqolalar
ON Xaridorlar.XaridorId = Maqolalar.XaridorId;

Natija quyidagicha ko'rinishda bo'ladi. Agar bir jadvalda ikkinchi jadval uchun mos qiymat bo'lmasa null qiymat shaklida chop etiladi.

SELF JOIN

SQL tilidagi o'z-o'ziga bog'lanish deb nomlangan bog'lanish turi mavjud bo'lib, biror-bir jadvaldagi ma'lumotlarni bog'lanish shaklida chop etish uchun ishlatiladi va SELF JOIN kalit so'zi yordamida amalga oshiriladi. Sintaksisi quyidagicha:

SELECT ustun_nom(lar)i FROM jadval1 J1, jadval1 J2 WHERE shartli_ifoda;

Bu yerda J1 va J2 jadval1 ning ushbu so'rovdagi vaqtinchalik 2 xil nusxasi.

Keling yuqoridagi Xaridorlar jadvalidan bir xil websaytga ega bo'lgan xaridorlar ro'yxatini chop etadigan so'rov yozamiz.

SELECT J1.Websayt, J1.XaridorIsmi, J2.XaridorIsmi FROM Xaridorlar J1, Xaridorlar J2 WHERE J1.XaridorId <> J2.XaridorId AND J1.Websayt = J2.Websayt ORDER BY J1.Websayt;

UNION operatori

UNION operatori ikki yoki undan ortiq SELECT ifodalarni natijalarni jamlab chiqarish uchun ishlatiladi. Bunda bir nechta shartlar mavjud:

  • UNION operatoridagi har bir SELECT ifodalarda ustunlar soni bir xil bo'lishi kerak.
  • Ustunlarning ma'lumot turlari bir xil bo'lishi kerak.
  • Ustunlar tartibi bir xil bo'lishi kerak.

Quyidagi ikkita jadvaldan websaytlar ro'yxatini chiqaradigan SQL so'rovini UNION kalit so'zi yordamida yozamiz.

SELECT Websayt FROM Xaridorlar
UNION
SELECT Websayt FROM Adminlar;

Natija quyidagicha: