MySQL Komutları
SQL'e Giriş
SQL Nedir?
MySQL Kurmak
Komut Kullanımı
Veritabanı Oluşturmak
Tablo Oluşturmak
Veri Eklemek
Sorgulama Yapmak
Kalıp İfadelerle Sorgu (pattern)
Bağlaçlar (Operatörler)
Sıralama Yapmak
Çeşitli Fonksiyonlar
Sütunları Adlandırmak
Veri/Kayıt Güncellemek
Tarihlerle İşlem
Veri / Tablo / Veritabanı Silmek

İleri Düzey SQL
Birden Fazla Tablo Sorgulama
Sonuca Başka Bir Tabloyu Katmak
Matematiksel İşlemler
Veri Türleri
Tüm Komutlar

Bağlantılar
HTML Dersleri
JavaScript Dersleri
CSS Dersleri
ASP Dersleri
PHP Dersleri
MySQL Komutları
jQuery Dersleri
Venus Programlama

Ana Sayfa Bize Ulaşın

Sonuca Başka Bir Tabloyu Katmak



Birden fazla tablo ile sorgulama yapmanın diğer bir yolu JOIN kullanmaktır. Bu komutla birlikte ayrıca INNER JOIN, OUTER JOIN, LEFT JOIN ve RIGHT JOIN komutları da bu derste anlatılacaktır.

Bu sayfadaki tüm örneklerde aşağıdaki tablo dikkate alınacaktır:

SELECT * FROM demo_people;

+------------+--------------+------+
| name       | phone        | pid  |
+------------+--------------+------+
| Mr Brown   | 01225 708225 |    1 |
| Miss Smith | 01225 899360 |    2 |
| Mr Pullen  | 01380 724040 |    3 |
+------------+--------------+------+

SELECT * FROM demo_property;

+------+------+----------------------+
| pid  | spid | selling              |
+------+------+----------------------+
|    1 |    1 | Old House Farm       |
|    3 |    2 | The Willows          |
|    3 |    3 | Tall Trees           |
|    3 |    4 | The Melksham Florist |
|    4 |    5 | Dun Roamin           |
+------+------+----------------------+
   

Yukarıda yer alan ilk tablo "demo_people" adındadır ve müşterileri içerir. Alttaki tablo ise "demo_property" adında olup satış ilanlarını içerir.

İlk olarak sadece JOIN kullanarak müşteri - telefon numarası - sattığı emlak sütunlarını bir araya getirelim:

select name, phone, selling
   from demo_people join demo_property
   on demo_people.pid = demo_property.pid;

+-----------+--------------+----------------------+
| name      | phone        | selling              |
+-----------+--------------+----------------------+
| Mr Brown  | 01225 708225 | Old House Farm       |
| Mr Pullen | 01380 724040 | The Willows          |
| Mr Pullen | 01380 724040 | Tall Trees           |
| Mr Pullen | 01380 724040 | The Melksham Florist |
+-----------+--------------+----------------------+
   

JOIN tablo_adı ON koşul şeklinde bir kullanım dikkatinizi çekmiştir. Burada bir önceki derste olduğu gibi müşteri numarası (pid) benzerliğinden yola çıkarak iki tabloyu birleştirdik.

LEFT JOIN kullanarak bu örneği yapsaydık fazladan 1 sonuç çıktığını görecektik:

select name, phone, selling
   from demo_people left join demo_property
   on demo_people.pid = demo_property.pid;

+------------+--------------+----------------------+
| name       | phone        | selling              |
+------------+--------------+----------------------+
| Mr Brown   | 01225 708225 | Old House Farm       |
| Miss Smith | 01225 899360 | NULL                 |
| Mr Pullen  | 01380 724040 | The Willows          |
| Mr Pullen  | 01380 724040 | Tall Trees           |
| Mr Pullen  | 01380 724040 | The Melksham Florist |
+------------+--------------+----------------------+
   

Bu örnekte eşleşmeyen kayıtlarda en soldaki tabloda görülmektedir (Miss Smith).

RIGHT JOIN kullandığımızda bu kez sağ taraftaki tabloda eşleşmeyen kayıtları göreceğiz:

select name, phone, selling
   from demo_people right join demo_property
   on demo_people.pid = demo_property.pid;

+-----------+--------------+----------------------+
| name      | phone        | selling              |
+-----------+--------------+----------------------+
| Mr Brown  | 01225 708225 | Old House Farm       |
| Mr Pullen | 01380 724040 | The Willows          |
| Mr Pullen | 01380 724040 | Tall Trees           |
| Mr Pullen | 01380 724040 | The Melksham Florist |
| NULL      | NULL         | Dun Roamin           |
+-----------+--------------+----------------------+
   

INNER JOIN, LEFT JOIN örneğinde yaptığımız gibi bir sonuç verecekti. OUTER JOIN ise LEFT ve RIGHT kullanarak oluşturduğumuz sorgudan sonra istemediğimiz verileri ayıklamak için kullandığımız komuttur.

Tüm hakları saklıdır. Lütfen kaynak belirtmeden sitenizde yayınlamayın. Web Sitesi © 2014