SQL9: Join (1-ci hissə) - INNAB

SQL9: Join (1-ci hissə)

Bəzən elə hesabat olur ki, bir neçə cədvəldə olan məlumatdan istifadə edəsi oluruq, çünki işçilərə dair ayrı-ayrı məlumatlar müxtəlif cədvəllərdə saxlanılır. Məsələn, işçilərin adları, kodları, iş stajı, maaş və mobil telefonları, töhmət alıb-almadığını əks etdirən hesabat lazım ola bilər. Bu zaman elə bir script yazmaq lazımdır ki, həmin cədvəllərdə olan məlumatları bir cədvəldə toplasın. Bunun üçün join funksiyasından istifadə edirik.

Join funksiyasını istifadə edərkən, hər bir cədvələ ədədlər çoxluğu kimi baxılır. Bu çoxluqların kəsişən hissəsi və kəsişməyən hissələri olur. Bunu aşağıdakı qrafik üzərində izah edək:

 

sql9-1

 

A çoxluğu ishchi_siyahi, B çoxluğu isə ishchi_tel cədvəllərini təmsil edir.

Əgər bizə hal-hazırda işləyən işçilərin kodları, adları və telefon nömrələri lazımdırsa, A çoxluğu  ilə B çoxluğunu işçi koduna əsasən əlaqələndiririk. Daha sonra A çoxluğunu əsas götürərək B çoxluğunda olan nömrələri cədvələ əlavə edirik. Yekun script forması aşağıdakı kimi olacaq:

sql9-2

select a.id, a.ad_soyad,b.mob_tel

from ishchi_siyahi as a left join ishchi_tel as b on a.id=b.id

Nəticə:

sql9-3

Soldakı cədvəlin (ishchi_siyahi) əsas götürülməsi üçün left join birləşdiricisindən istifadə olunur.

Nəticədən göründüyü kimi  1 işçinin (10031 kodlu) mobil nömrəsi bazada yoxdur.

Bazada mobil nömrəsi olan işçilərin kodları və adları olan cədvəl tərtib etmək  lazım olarsa, aşağıdakı scriptdən istifadə olunur:

 

sql9-4

select a.id, a.ad_soyad,b.mob_tel

from ishchi_siyahi as a right join ishchi_tel as b on a.id=b.id

Nəticə:

sql9-5

Sağdakı cədvəlin (ishchi_tel) əsas götürülməsi üçün right join birləşdiricisindən istifadə olunur.

Bir cavab yazın