Join kelimesini ele alalım ilk olarak. Katılmak , birleştirmek, eklemek , bağlamak anlamlarını taşır.
SQL join komutlarını kullanarak iki tabloda ortak alanlardan faydalanarak bu iki tabloyu eşlemeye yarar. Örneğin;
Bir spor klübüne ait bir veri tabanı olsun. Bu veritabanında üyelere ve bu üyelerin adreslerin tutulduğu ikinci bir tablo olsun. Bu tablolarda tutulan alanlar için de örnek vererek açıklayalım;
tablo-1: üyeler olsun ve column( sütun) isimleri de; üye id, ad, soyad, doğum tarihi, üyelik tarihi ...vs
"üyeler" tablosu
üye_id | ad | soy_adi | dogum_tarihi | üyelik_tarihi | | |
---|
1 | tolga | çelik | 25.10.2000 | 01.01.2016 | . | . |
2 | ahmet | genç | 01.05.1999 | 21.09.2016 | . | . |
3 | ayşe | fidan | 12.05.1988 | 15.08.2016 | . | . |
tablo-2: adresler olsun, sütunları ise; adres id, ülke, şehir, ilçe, semt, sokak, posta kodu.
"adres" Tablosu
seq | üye_id | şehir | ilçe | sokak | posta_kodu |
---|
1 | 1 | İstanbul | Şişli | bahar sokak | 34011 |
2 | 1 | Ankara | Keçiören | Çetiner sokak | 06001 |
3 | 2 | Istanbul | Beylikdüzü | test | test |
4 | 3 | Istanbul | Kadıköy | | test |
5 | 3 | Ankara | Kızılay | test | test |
Bu iki tablonun ortak noktaları olan "üye_id" sütun değerini kullanarak üye tablosundaki bir üyenin, adresinin hangisi veya hangileri olduğunu JOIN leyere bulabiliriz. Bu arada sütunlardaki isimleri değişebilir . üye_id olmaz da, kisi_id olur vs.) ama iki tablodada ortak olan sütunun hangisi olduğunu biliyorsak, o sütun üzerinden iki tabloyu eşleyerek veriyi çekebiliriz.
Teknik olarak biraz detaylı örnek verecek olursam;
SQL join , INNER JOIN de denmektedir.Farklı türleri vardı ama şuan girmiyorum. üyeler ve adresler üzerindeki "üye_id" alanlarını birbirine eşit olduğu noktadan bağlayalım;
SELECT * FROM üyeler INNER JOIN adresler ON üyeler.üye_id = adresler.üye_id;
** JOIN yapmak için farklı olarak "WHERE" de kullanıldığı görülmektedir.
SELECT * FROM üyeler , adresler WHERE üyeler.üye_id = adresler.üye_id;