arasına bir filtre ekleme Bu nedenle, birleştirme işleminin WHERE deyimine filtre koşullarını eklemek için iyi bir programlama uygulaması olduğunu biliyorum, böylece katılımcılar tarafından döndürülen satır sayısını en aza indirgeyiz. FROM yerine WHERE'ye filtre eklememize karar verelim mi? Bunun yerine WHERE VE fıkrada b.ColD eklenen ne olur Bu sorgudaWHERE ile FROM
SELECT a.ColA, a.ColB, a.ColC, b.ColD, b.ColE
FROM TblA a INNER JOIN TblB b
On a.ColA = b.ColD
AND a.ColA = 'X'
AND a.ColB = 'Y'
WHERE b.ColD = 'ABC'
: Örneğin? Bu sorguyu daha verimli yapmaz mı? Her iki yaklaşımda da sonuçların farklı olabileceğini biliyorum ama nedenini bilmiyorum.
Teşekkürler.
için daha da parçalamak için çok CTEs kullanabilirsiniz. Yönetim stüdyosu, bir sorgunun yürütme planını gösterme yeteneğine sahiptir, böylece her iki sürümün farklılıklarını karşılaştırabilirsiniz. Benim _guess_, bununla birlikte çok fazla fark olmayacak. –
THis bir kopya değil: OP filtreler hakkında soru soruyor, JOINs değil – gbn
@gbn OP'nin ifadesi ("filtre" vs. "koşul" vb.) Çok yoğun olduğundan emin değilim, çünkü OP tarafından verilen örnek esasen [burada] ile aynıdır (http://stackoverflow.com/q/1907335/880904), [burada] (http://stackoverflow.com/q/1018952/880904), [burada] (http:/http://stackoverflow.com/q/15483808/880904) Bunların hepsi "JOIN ... ON" var, "WHERE" hakkında sorular soruyor ve sizinkilere benzer cevapları içeriyor. Bu sorunun yanıtlandığını ya da [bu soruyu] yeniden açmamız mı gerekiyor (http://stackoverflow.com/q/13145275/880904)? –