SORU
19 HAZİRAN 2009, Cuma


KATILMAK içinde durumu veya NEREDE

Herhangi bir fark (performans, en iyi uygulama, vb.) KATILMAK WHERE vs fıkrasında bir koşul koyarak arasında var mı?

Örnek...

-- Condition in JOIN
SELECT *
FROM dbo.Customers AS CUS
INNER JOIN dbo.Orders AS ORD 
ON CUS.CustomerID = ORD.CustomerID
AND CUS.FirstName = 'John'

-- Condition in WHERE
SELECT *
FROM dbo.Customers AS CUS
INNER JOIN dbo.Orders AS ORD 
ON CUS.CustomerID = ORD.CustomerID
WHERE CUS.FirstName = 'John'

Hangi (ve belki de neden) tercih edersiniz?

CEVAP
19 HAZİRAN 2009, Cuma


İlişkisel Cebir sağlar olmuştur. bu koşullar içinde WHERE yan ve INNER JOIN bile INNER JOIN sorgular WHERE maddeler var doğrulamaları rearrranged tarafından iyileştirici, böylece onlarzaten dışarıdaJOIN işlem sırasında.

En readble şekilde sorgular Olası yazmanı tavsiye ederim.

Bazen bu INNER JOIN "WHERE bazı kriterler koyarak sadece filtreleme kriterleri listeleri daha kolay sürdürülebilir." eksik nispeten yapma içerir

Örneğin, yerine:

SELECT *
FROM Customers c
INNER JOIN CustomerAccounts ca
    ON ca.CustomerID = c.CustomerID
    AND c.State = 'NY'
INNER JOIN Accounts a
    ON ca.AccountID = a.AccountID
    AND a.Status = 1

Yazma:

SELECT *
FROM Customers c
INNER JOIN CustomerAccounts ca
    ON ca.CustomerID = c.CustomerID
INNER JOIN Accounts a
    ON ca.AccountID = a.AccountID
WHERE c.State = 'NY'
    AND a.Status = 1

Ama duruma göre değişir tabii.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014