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

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007
  • Living Waters

    Living Water

    9 AĞUSTOS 2006