SQL join Kullanımı ( Birleştirme )

SQL join işlemi küme mantığında çalışır. Tabloları birleştirmede kullanırız. inner join, left join, right join tipleri vardır. Şimdi bunları örneklerle anlatalım. Eğer sorgu yazmayı ( select kullanımını ) bilmiyorsanız ilk olarak onu öğrenmenizi tavsiye ederiz.

Örnek 1: 

select * from Products p inner join [Order Details] o on p.ProductID = o.ProductID

inner join leme işlemi yaparken aynı olan sütunları eşleştirilir. Burada her iki tabloda ProductID ler eşlenerek gelir. Önce Products yazıldığı için onu önce çeker. Not : inner join yerine sadece join de yazsak inner join işlemi yapar. Varsayılan olarak inner join ayarlandığı için

Örnek 2:

select ContactName, OrderID, Address from Customers inner join Orders on Customers.CustomerID = Orders.CustomerID where Address like '%12%' 

Siparişlerinin adresinde 12 sayısı geçen müşterilerin adları(contactName), siparişId(orderıd), adres  lerini çeker..

SQL left join Kullanımı

Soldaki tablodaki tüm değerler ve sağdaki ortak değerleri çekmek için kullanırız.

örnek 1: 

select ContactName, OrderID from Customers  left join Orders on Customers.CustomerID = Orders.CustomerID  order by ContactName asc 

Burada soldaki yani Customers tablosundaki ContactName, OrderID leri çeker..

örnek 2:

select ContactName, OrderID from Customers  left join Orders on Customers.CustomerID = Orders.CustomerID  where Orders.OrderID is null order by ContactName asc 

Hiç sipariş vermemiş müşteri vermemiş müşteriyi çeker..

SQL right join Kullanımı

Sağ tablonun tamamı sol ortak değerleri çeker…

örnek 1:

select FirstName ,OrderID from Orders right join Employees on Orders.EmployeeID = Employees.EmployeeID where orders.OrderID is null order by FirstName

Hiç sipariş vermemiş çalışanları çekmek için.

full outer join Kullanımı

Bütün hepsini çekmek için kullanırız.

örnek 1:

select ContactName, OrderID from Customers full outer join Orders on Customers.CustomerID = Orders.CustomerID order by ContactName

Burada  ContactName, OrderID sütunlarını çekmek için kullanılır.

Örnek 2:

select * from orders inner join Shippers on orders.ShipVia = Shippers.ShipperID

Orders ile Shippers tablolarını çeker. Burada önemli olan nokta ortak  sutun olmadığı halde ilişki verilen sütunlarla eşleme yapılabilir.

Başka bir yazımızda görüşmek üzere…

Leave a Reply