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

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • SolidWorksTutoriels

    SolidWorksTu

    14 Kasım 2013