Tablo birleştirmek için kullandığımız Join’lerin birkaç örneği burada mevcut. Join konusu biraz kapsamlı olduğu için diğer çeşitlerinide not almak istedim.
Join yapısını hatırlayacak olursak;
[cc lang=”sql”]SELECT kolon_adi
FROM tablo_adi
JOIN tablo_adi2
ON tablo_adi.kolon_adi=tablo_adi2.kolon_adi[/cc]
gibiydi…
Inner Join : Koşulları dışlayan yani her iki tabloda eşleşenleri getiren sorgu tipi, Null yani boş olanları göstermez!
Left Join – Right Join : Left ile soldaki tablodaki tüm kayıtları getirerek sağdaki sadece eşleşenleri getirmemize sağlar. Right ile yapıldığında ise tam tersi…
Full Join : Adı üzerinde tüm değerleri getirmemizi sağlıyor. Left Join – Right Join’in bir araya getirilmiş gibi de düşünebiliriz.
selam hocam…bir sorum olacak…full join işlemini 4 tabloda yapabilir miyiz..? bir örnek gösterebilir misiniz..? benim yaptığım şöyle bişey bunun üzerinden yapabilir misiniz…teşekkür ederim…
http://rapidshare.com/files/456376067/yemek.rar
Tabi ki yapabilirsin hatta 5 tabloda bile örnek Northwind üzerinde Siparis No, Urun Adı, Satın Alan Firma, Kargo Şirketi, Satış Yapan Personel listesini veren sorgu ;
[cc lang=”sql”]SELECT
o.OrderID AS [Siparis No],
p.ProductName AS [Urun Adı],
c.CompanyName AS [Satın Alan Firma],
s.CompanyName AS [Kargo Şirketi],
CONVERT(NVARCHAR,e.EmployeeID) + ‘ ‘ +e.FirstName + ‘ ‘ + e.LastName AS [Satış Yapan Personel]
FROM Orders o
FULL JOIN [Order Details] od ON od.OrderID = o.OrderID
FULL JOIN Products p ON p.ProductID = od.ProductID
FULL JOIN Customers c ON c.CustomerID = o.CustomerID
FULL JOIN Shippers s ON s.ShipperID = o.ShipVia
FULL JOIN Employees e ON o.EmployeeID = e.EmployeeID
ORDER BY [Siparis No],[Urun Adı],[Satın Alan Firma],[Kargo Şirketi],[Satış Yapan Personel][/cc]
Full yapınca Null değerlerde geliyor ama idare et artık 🙂