SQL10: Join (2-ci hissə) - INNAB

SQL10: Join (2-ci hissə)

Hesabat tərtib edərkən bir cədvəldə olan məlumatlara digər cədvəldə olan məlumatlar ilə birləşdirilməsi üçün join funksiyasından istifadə edilir. İki cədvəl biri  sağda digəri isə solda yerləşir və müvafiq olaraq right join və left join funksiyalarından istifadə olunur. Əsas cədvəl hansıdırsa joinin həmin cədvəlinə uyğun olanı seçilir və digər cədvəldə olan məlumatlar bu cədvələ əlavə edilir. Bunu aşağdakı çoxluqlar üzsql10-1ərində göstərək.

A çoxluğu hal-hazırda işləyən işçiləri, B çoxluğu isə hal-hazırda şirkətdə işləyib-işləməməyindən asılı olamayaraq töhmət almış işçilərin siyahısnı və töhmətin növünü özündə saxlayan cədvəllləri təmsil edir.

Hal-hazırda şirkətdə işləyən və töhmət almış işçilərin siyahısını hazırlamaq lazım olarsa, A çoxluğu ilə B çoxluğunun kəsişməsində olan işçilərin siyahısını əldə etməliyik. Bunun üçün   aşağıdakı scriptdən istifadə edilir:

select a.id, a.ad_soyad, b.tohmet

from ishchi_siyahi as a inner join ishchi_tohmet as b on a.ID=b.ID

sql10-2

Nəticə

sql10-6

Hal-hazırda şirkətdə işləyən və töhmət almayan işçilərin siyahısını hazırlamaq lazım olsa, B çoxluğunda olmayan A çoxluğunda olan işçilərin siyahısını əldə etməliyik. Aşağıdakı script vasitəsilə bunu edirik:

select a.id, a.ad_soyad, b.tohmet

from ishchi_siyahi as a left join ishchi_tohmet as b on a.ID=b.ID

where a.id not in (select id from ishchi_tohmet)

sql10-4

Nəticə

sql10-7

İşdən çıxmış və töhmət almış işçilərin siyahısını hazırlamaq üçün isə  B çoxluğunda olan və A çoxluğunda olmayan işçilərin siyahısını hazırlamaq lazımdır. Bunun üçün aşağıdakı scriptdən istifadə etmək lazımdır:

select b.id, b.tohmet

from ishchi_siyahi as a right join ishchi_tohmet as b on a.ID=b.ID

where b.id not in (select id from ishchi_siyahi)

sql10-4

Nəticə

sql10-8

Bir cavab yazın

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir