Şehirler Tablosu
CREATE TABLE Sehirler ( ID INT PRIMARY KEY NOT NULL IDENTITY(1,1), ad VARCHAR(100) ) INSERT INTO Sehirler (ad) VALUES ('Adana') INSERT INTO Sehirler (ad) VALUES ('Adıyaman') INSERT INTO Sehirler (ad) VALUES ('Afyon')
Şehirler Tablosu Sonuç
Şehirler tablosu sonrası ilçeler tablosunu oluşturalım.
İlçeler Tablosu
CREATE TABLE Ilceler ( ID INT PRIMARY KEY NOT NULL IDENTITY(1,1), sehir_ID INT, ad VARCHAR(100), FOREIGN KEY (sehir_ID) REFERENCES Sehirler (ID) ) INSERT INTO Ilceler (sehir_ID, ad) VALUES (1, 'Adana İlçe 1') INSERT INTO Ilceler (sehir_ID, ad) VALUES (1, 'Adana İlçe 2') INSERT INTO Ilceler (sehir_ID, ad) VALUES (2, 'Adıyaman İlçe 1') INSERT INTO Ilceler (sehir_ID, ad) VALUES (3, 'Afyon İlçe 1') INSERT INTO Ilceler (sehir_ID, ad) VALUES (null, 'Bilinmeyen İlçe 1') INSERT INTO Ilceler (sehir_ID, ad) VALUES (null, 'Bilinmeyen İlçe 2')
İlçeler Tablosu Sonuç
Görüldüğü gibi Ilceler adlı tablomuzda sehir_ID = null olan iki tane ilçe mevcut; yani Sehirler tablosunda henüz o ilçeye ait bir şehir ataması yapılmamış. İlçeleri şehirlerle birlikte getirelim ayrıca boşta olan ilçeleri bu kesişime dahil etmek için Right Outer Join ifadesini kullanalım.
Right Outer Join
SELECT A.ID sehir_ID, A.ad sehir_ad, B.ID ilce_ID, B.ad ilce_ad FROM Sehirler A RIGHT OUTER JOIN Ilceler B ON A.ID = B.sehir_ID
Join sorgumuzu hazırladık, sonrasında gelen değerleri kontrol edelim. Verileri incelediğimizde Kesişim Dışında Kalan kayıtları da listelemiş olduk.