14 Kasım 2017 Salı

Sql Server Joins

from
FIRMALAR, SEKTORLER, GOREVLER

Firmalar= sol tablo
Görevler=sağ tablo

4 adet join var
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL OUTER JOIN

INNER JOIN VE LEFT JOIN KULLANILIR








 select
f.ID, f.FIRMAADI, f.TICARIUNVAN, s.NAME SEKTORADI, f. TELEFON
from
FIRMALAR f, SEKTORLER S
where
f.SEKTORID=s.ID

--------------------------------
inner join sorgu ve açıklaması

select
f.ID, f.FIRMAADI, f.TICARIUNVAN, s.NAME SEKTORADI, f.TELEFON
from
FIRMALAR f
INNER JOIN SEKTORLER s ON f.SEKTORID = s.ID

açıklaması:
yukarıdaki sorguda
f.ID, anlamı fromdan sonraki FIRMALAR tablosuna bir boşluk bırakıp f ile kısaltma verdik, yani FIRMALAR Tablosundan veri okuyabilmek için sadece f dememiz yeterli
virgülden sonra devam edenler f. FIRMAADI firmalar tablosundaki field sütun isimleri hangi sütünları listelemek istiyorsak sırası ile ekliyoruz

yukarıdaki sorguda Firmanın id si, firmanın adı
ticari ünvanı sadece 3 field çağırıyoruz

daha sonra s. name sorgumuz devam ediyor. burada s yi aşağıda innerjoin yaparken sektorleri s olarak kısaltmış olduğumuzda buradaki fieldları s. şeklinde okuyabiliyoruz.

sorguyu açıklayacak olusak

firmalar tablosundaki id, firma adı, ticari ünvanını getirirken, firmalar tablosundaki fk (foreign key) sektor id sine eşit olan sektorlerleri sektorler tablosundaki id ile eşitleyerek listele demiş oluyoruz

yani firmalar tablosundaki sektor id = sektorler tablosundaki sektor id ye


deneme joinler

gelecek liste
ilgilier listesi inde

ID
ilgili adı
firma adı
görev adı
ilgili mail
firma mail
ilgili adresi


select
i.ID ILGILININ_IDSİ, i.ADISOYADI, f. FIRMAADI,
 g.NAME GOREV_ADI, i.MAIL ILG_MAILI, f.MAIL FIRM_MAILI, i.ADRES ILG_ADRESI

from
ILGILILER i
INNER JOIN FIRMALAR f ON i.FIRMAID=f.ID
INNER JOIN GOREVLER g ON i.GOREVID=g.ID
---------------------






FIRMA LİSTESİ


FIRMA ID
FIRMA ADI
SEKTOR ID
SEKTOR ADI
YILLIK CIRO

yıllık cirosu 50 nin üzeridneki firma listesini görmek, ve yıllık ciro büyükten küçüküğe sıralı



select
f.ID FIRMA_IDSI, f.FIRMAADI, S.ID SEKTR_IDSI, s.NAME SEKTOR_ADI, f.YILLIKCIRO

from
FIRMALAR f

LEFT JOIN SEKTORLER s ON s.ID=f.ID
where
YILLIKCIRO>50
ORDER BY YILLIKCIRO desc


--------------------------------------------

select
g.ID, g.TARIH GORUSME_TARIHI, i.ADISOYADI GORUSULEN_KISI, f.FIRMAADI, s.NAME SEKTOR_ADI,
gr.NAME GOREVADI, k.ADISOYADI GORUSEN_PERSONEL, g.ACIKLAMA,
CASE
    WHEN g.GORUSMETIPI = 1 THEN 'TELEFON'
    WHEN g.GORUSMETIPI = 0 THEN 'FAX'
END AS GORUSMETIPI

FROM
GORUSMELER g
LEFT JOIN ILGILILER i ON g.ILGILIID=i.ID
LEFT JOIN FIRMALAR f ON i.FIRMAID=f.ID
LEFT JOIN SEKTORLER s ON f.SEKTORID=s.ID
LEFT JOIN GOREVLER gr ON i.GOREVID=gr.ID
LEFT JOIN KULLANICILAR k ON G.KULLANICIID=k.ID






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....