22 Aralık 2015 Salı

Sql aynı tabloda join

SQL’de bazen öyle olur ki bir tablo içinde yer alan verilerin aynı tablo içinde eşleşerek listelenmesini isteyebiliriz. Genelde bu sorgu tipi de çok nadirdir ancak değinmeden geçmeyelim. Bur örneği yapabilmek için ben veritabanım üzerinde Calisanlar adında bir tablo oluşturacağım. Bir tabloda, başka bir tablonun birincil anahtar alanını. Yukarıdaki soru ile tamamen aynı işi yapan bu sorguda ise JOIN anahtar sözcüğünü kullanalım:.


SQL LEFT JOIN Kullanımı. NOT: LEFT JOIN aynı zamanda LEFT OUTER JOIN olarak da kullanılabilir. JOIN yaptığımızda her iki tabloda uyuşanlar gelir.


B ve C’yi aynı anda JOIN ettiğin için A’nin C’deki. Az önceki tanımlamada da bahsi geçtiği üzere JOIN birleştirmenin (sonuç tablosu oluşturma) yanı sıra SELECT ile iki ya da daha fazla tablo ilişkilendirilerek sorgulama yapılabilir. Ayrıca, SELF JOIN ile aynı tabloda da sorgulama yapmak mümkündür.


Sql aynı tabloda join

Basit bir JOIN işlemi ile yukarıdaki tanımı örneklendirelim. Mesela yukardaki tabloda no alan adları aynı olanların ikisini birden güncelleştirebilirmiyiz? Tablolardaki no alan adları ilişkili değil. Yayınevi tablosunun no alanı ile Kitaplar tablosunun yv_no alanı ilişkili. Join(Birleştirici), iki ya da daha fazla tabloyu aynı anda sorgulayarak bir sonuç tablosu (result table) oluşturmaya yarar.


Değerleri aynı olan alanlara göre gruplandırıp bunlardan farklı olan ID sütünu (yoksa IDENTITY autoincrement bir sütun oluşturmak lazım) minimum veya maksimum olanı seçecek şekilde bir iç sorgu yazıyoruz. Bu durumda sadece belirtilen alanlarda eşit olan kayıtlar seçilir. Gene aynı şekilde id alanalr eşit olan kayıtlar işleme alınmış.


Bu derste sql de -aynı işi- iç içe select ve inner join ile birlikte yapılışını görelim. Ana tabloda var olan ama diğer tabloda olmayan bir kayıt olduğunda karşısına sıfır yazar. Ve bu iki tabloda da aynı sütun isimleri olsun diyelim. Bana lazım olan kategoriler tablosundaki sütun diyelim. Bu yüzden hangi tablodaki sütunun gelmesini istiyorsak onu belirtmiş oluyoruz.


Aslında bir bakıma alışkanlık bir de sistematik diyebiliriz. Tabloda aynı değerleri içeren farklı kayıtlar varsa o tablo için farklı takma isimler. SQL’deki JOIN işlemlerinde sırada RIGHT JOIN var. Left ile hemen hemen aynı özelliklere sahip olan sadece tam tersi işlem yapan bu join işlemini de bir örnek ile rahatlıkla anlayacağınızı düşünüyorum. Syntax durumuna, ardından şematik görüntüsüne ve son olarak örneğine bakacağız.


Bu sql cümlesi üç tabloda olan verilerden tckn eşleşen kayıtları listeler. Birden Fazla Tabloda Tutulan İlişkisel Verileri Almak. Natural join, iki tablo arasında aynı isimde olan sütunları birbiriyle otomatik olarak bağlayan bir Join türüdür.


Alias’ın diğer bir amacı da iki tabloda da aynı isme ait bir kolon varsa ve alias tanımlamadan select kısmında direk kolonun ismini yazarsanız aşağıdaki gibi bir hata alırsınız. INNER JOIN ve JOIN aynı işlevi yaparlar. Yukarıdaki resimdeki gibi tableve tableiçin kesişen kolonları ve dataları getirir. Boş ve kesişmeyen data varsa bunu getirmez. Kısacası LEFT JOIN komutunun tersidir.


Sql aynı tabloda join

Burada görüleceği üzere From ifadesi ile birinci tablomuzu ve ardından LEFT JOIN (veya LEFT OUTER JOIN) ile ikinci tablomuu belirtmiş oluyoruz. ON ile hangi alanların eşitleneceği gösterilmektedir. Peki, birbiriyle ilişkili birden fazla tabloda update işl.


Birinci tabloda ki bütün kayıtlar seçilir. Access veritabınındaki tablo ilişkilendirme ile aynı mantıktadır. Verilerin birbirleriyle join işlemleri T-Sql de olsun PL-Sql de olsun sıkça yapılan işlemlerdendir.


Hangi durumda verinin nasıl geleceğini tahmin edememek aslında ciddi bir tehlikedir. Bu yazım ile birlikte birkaç örnek daha yapmayı düşünüyorum. Bu site çözümleme, kişiselleştirilmiş içerik ve reklamlar için tanımlama bilgileri kullanmaktadır.


Bu sitede gezinmeye devam ederek bu kullanımı kabul etmiş olursunuz. Cross join, birinci tabloda yer alan her bir kaydı ikinci tabloda yer alan her bir kayıt ile ilişkilendirerek satırlar türetmede kullanılır. Union ifadesi ile birleştirilen iki et’ı aynı sıradaki sütunların adları farklı ise, geçerli sütun adı, ilk et’teki sütun adıdır. Outer join genellikle bir tabloda olup diğer tabloda olmayan kayıtları görüntülemek için kullanılır.


Ama kolon isimleri aynı fakat kolonların data tipleri farklı olursa join hatalı olacaktır.

Hiç yorum yok:

Yorum Gönder

Not: Yalnızca bu blogun üyesi yorum gönderebilir.

Popüler Yayınlar