SQL Server’da Alt Sorgularda IN Operatörü Kullanımı

Herkese merhaba,

Bu yazıda size SQL Server’da alt sorgularda in operatörü kullanımından bahsedeceğim.

İlk olarak altsorgu sorgu içinde sorgu demektir. En temel haliyle böyle diyebiliriz. IN ise kelime anlamı olarak içinde anlamına gelir. Birden fazla değer aramak için kullanılır. Bu ikisinin birleşimi ile iç içe sorgular yazmamız mümkündür. Konuyu anlama açısından Northwind veritabanını kullanarak bir örnek yapalım.

--Subquery Örnek

SELECT  *
FROM    dbo.Products
WHERE   SupplierID IN ( SELECT  SupplierID
                        FROM    dbo.Suppliers
                        WHERE   ContactName = 'Charlotte Cooper' )

--Inner Join Örnek

SELECT * FROM dbo.Products p INNER JOIN dbo.Suppliers s ON s.SupplierID = p.SupplierID 
WHERE s.ContactName='Charlotte Cooper'

Burada iki adet sorgu bulunmakta. İkisi de aynı sonucu veriyor gibi gözükse de çektiği alan sayıları farklıdır.

Subquery örneğini açıklayacak olursak Suppliers tablosunda ContactName kısmında Charlotte Copper olan ürünleri çekmiş olduk. Böyle işlemlerde ilk olarak ne istediğimize karar vereceğiz. Products tablosundan bilgi getirme işlemi yapıyoruz. Bu işlem için şartımızı hangi tabloya yazacağız ona dikkat edeceğiz kısaca ContactName alanı Suppliers tablosunda olduğu için where şartını buraya yazacağız. İki select sorgusunu birleştirmek için In yapısını arada kullanıyoruz. Birinci select sorgusunun where şartındaki alan ile ikinci sorgunun yani alt sorgunun select kısmından sonraki alan isminin aynı olması önemlidir.

Inner Join ile de aynı sonucu alacaksınız tek farkı daha fazla alan getiriyor olmasıdır.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

322 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!