İlişkiler ve JOIN
Alt sorgular ve ilişkili sorgular
Bir sorunun sonucunu başka bir soruda kullan.
Kavramı anlayalım
Alt sorgu SELECT içinde, FROM’da türetilmiş tablo olarak veya WHERE koşulunda kullanılabilir. Skaler alt sorgu en fazla bir değer döndürmelidir; birden çok satır hata verir. IN bir sonuç kümesiyle üyelik sınar. FROM’daki alt sorguya takma ad gerekir.
İlişkili alt sorgu dış sorgunun mevcut satırına referans verir. Mantıksal olarak satırla ilişkili olması fiziksel olarak mutlaka her satır için ayrı çalıştırılacağı anlamına gelmez; optimizer farklı planlar seçebilir. Okunabilirlik ve gerçek planı birlikte değerlendir.
Ortalamanın üzerindekileri bulma ve grup içi karşılaştırmalar için.
Skaler alt sorgunun birden çok satır döndürebileceğini unutmak.
Aynı konu. Üç farklı derinlik.
SELECT ProductName, Price FROM lab.Product WHERE Price > (SELECT AVG(Price) FROM lab.Product);Genel fiyat ortalamasıyla karşılaştırır.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
En yüksek fiyatlı ürünleri alt sorguyla bul; eşit fiyatlılar varsa hepsini koru.
Çözümü ve açıklamasını göster
SELECT ProductName, Price FROM lab.Product WHERE Price = (SELECT MAX(Price) FROM lab.Product);Laptop döner; bu kalıp eşit maksimum fiyatları da korur.