Merhaba Arkadaşlar;
SQL ile oynamaya daha önce ki makakelerde başlamıştık basittten zora dogru gidiyoruz. Bu makalede anlatacağım iç içe sorgu 1 veritabanındaki 2 tablodan aynı anda yararlanmak için kullanılır.
Örneğin bir mağazamız var ve magazadaki bir üründe fiyat değişikliğine gitmemiz gerekiyor. İlk başta ayrı bir tablodan fiyatı değişecek ürünün ismini bulmak ve başka bir tablodanda bu ürüne ait fiyat listesini bulmak lazım değişikliği yapıp faturaya işlemek için işte iç içe sorgu burada devreye giriyor.
Önce tabloları gözümüzde canlandıralım
Tablo1: ürünler
Alanları: ürün_id, ürün_adi , .....
Tablo2: fiyatlar
alanları:ürün_id, pesin_fiyat , ......
Bu iki tablonun ışığında sorgumuzu yazalım:
Select ürün_id,pesin_fiyat from fiyatlar
where ürün_adi (select ürün_id,ürün_adi from ürünler
where ürün_adi = 'gömlek' )
Dışarıdan bakıldığında karışık gibi görülebilir ancak sorguya mantıklı olarak yaklaşıldığında ne kadar işe yaradığını ve anlamlı olduğunu görebiliriz.
Bu Sorguda Yapılan işin ne kadar uzun oldugunu ve iç içe sorgu sayesinde ne kadar kısa bir şekilde yaptığımızı anlamak için uzun şekilini anlatalım.
Eğer iç içe sorgu yazılmasaydı tablolar arasında ilişki kurmak ve biraz daha karmaşık olan join işlemini kullanmamız gerekecekti. Join işlemi sadece o anlık veriler hakkında işlem yapar yani hemen hemen her işlem için ayrı sorgu yazmak gerekecekti. Örnekle anlatacak olursak 2 tane uzaktan kumandalı arabamız olsun birisi kablolu diğeri kablosuz. Kablolu olanı daha fazla ilerletmek için peşinde gitmemiz lazım yani her adımı takip etmek lazım bu join işlemi oluyor kablosuzda ise bizim onun peşinden gitmemize gerek kalmıyor sadece başta hazırlık yapmak yetiyor( pil koymak gibi :) ) sonra o kendisi ilerliyor biz sadece izliyoruz buda iç içe sorgu oluyor.
Her zaman söylediğim şeyi tekrar söylüyorum.
Bir şeyi kabul etmek gerekiyor veritabanı programcılığı mantık olmadan yürümez en ufak bir detaya bile mantıklı yaklaşmak lazım
İleri ki makalelerde görüşmek üzere....... ; )
Gelecek Bizimle Gelecek