9 Şubat 2018 Cuma

Sql Server Left Join Anlatımı

Sql Serverda iki tablo birleştirme Left Join ve 3 Tablo birleştirme Left Join Örneğini yapacağız.

Ms SQL Server

Üç Aadet tablo kullancağız.

1. Tablo adı: ILGILILER
2 . Tablo adı: FIRMALAR
3. Tablo Adı: GOREVLER

ilk önce iki tablo ile Left join yapıp sonra 3 tabo ile left join yapacağız.
 2 tablo ve 3 tablo şeklinde söyleme nedenimiz, ILGILILER isminde bir tablomuz var ve içerisinde
ilgili adı soyadı şehri telefonu gibi bilgiler var. ancak firması yok. firması FIRMALAR tablosunda
bizde Tek sorguda raporda ilgiliyi gösterirken firmasınıda göstereceğiz olay bu. sonrada görevler tablosundan görevinide göstereceğiz. üçüncü bir tabloya dallanacağız.

ikili tablo örneği.
Talep: ilgililer listesini sql sorgusu ile görmek istiyoruz.
sorgumuz.
SELECT * FROM ILGILILER
dir
ve listelenir.



 ekran görüntüsünde olduğu gibi burada dikkat edilmesi gereken FIRMAID stünudur. çünkü bu başka bir tabloya yani FIRMALAR tablosuna referanstır. yani bu kayıt sql tabloları içerisinde değişmeden gezer ve istediğimiz yerden çağırabileceğimiz anlamına gelir. bir nevi. Firma isimlerinin değişmeyen adı Referansı gibi düşünebiliriz.

şimdi bu listede Karani UYAR'ın hangi firmada olduğunu görmek/Listelemek/ yazılımda göstermek için Left join sorgusu oluşturacağız.

SELECT * FROM ILGILILER
LEFT JOIN FIRMALAR ON FIRMALAR.ID = ILGILILER.FIRMAID


ekran alıntısında olduğu gibi Firma Adı geldi aynı tabloda birleşti
 Burada Oturması için adım adım açıklama olarak.

 1. Left Joinle ile FIRMALAR (fi) Tablosuna git
  2.ON ile  içine gir
  3.fi.ID (FIRMALAR tablosundaki ID stününü oku)
  4.okuduğun sütünu başka tabloda (ILGILILER) eşitlemek için keşte tut
  5.ilgililer tablosuna git
  6.ilgilier tablosundak FIRMAID stünunu oku
  7.4. Adımdaki  tutulan rakamlarla eşitle, referans olduğu için zaten eşit ti
  8. Listele

buradaki kısaltmaları birazdan sorgu uzadığında kullanacağız.

Göründüğü gibi listede ihtiyacımız olmayacak bilgiler de geliyor onlarıda istersek göstermeyebiliz. ihtiyacımız olanları listelemek bizim elimizde
şimdi yukarıdaki sorguyu düzenliyorum.  ve sorguda kısaltmalar kullanacağım.

SELECT * FROM ILGILILER il
LEFT JOIN FIRMALAR fi ON fi.ID = il.FIRMAID

bu kısaltmalı sorgu halidir ve yukarıdaki le aynı sonucu döner.

şimdide ihtiyaç olanları çağıracağım sadece.

SELECT * Demiştik ya. buradaki (*) ILGILILER Tablosundaki herşeyi listelemekte.
yıldızı kaldırıp yerine istediğimiz field sütun adlarını getireceğiz.

SELECT il.ADISOYADI, il.MAIL, il.TELEFON, fi.FIRMAADI FROM ILGILILER il
LEFT JOIN FIRMALAR fi ON fi.ID = il.FIRMAID



-----------------------------------------
3. tabloda da Görevler demiştik GOREVLER tablosundan da ilgili kişinin Görevini listeleyebiliriz.
Bunun için Bir Left Join daha ekliyoruz.

SELECT fi.FIRMAADI,
  gr.NAME GÖREVİ, il.ADISOYADI,
  il.TELEFON, il.MAIL, il.ADRES
 FROM ILGILILER il
 LEFT JOIN FIRMALAR fi ON fi.ID = il.FIRMAID
  LEFT JOIN GOREVLER gr ON gr.ID = il.GOREVID



 Görevi de aynı sorgu sonucunda Listelenmiş oldu.










Hiç yorum yok:

Yorum Gönder

Mac adres formatı excel

excel iki nokta mac addres formatı Mac adresi karakterlerini üst üste iki nokta : iki nokta üst üste olacak şekilde excel dosyasında ayırır....