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

  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011