--Query1比較SQL查詢連接
SELECT TransactionDetails.Transactions.TransactionId
, TransactionDetails.Transactions.CustomerId
, TransactionDetails.Transactions.TransactionType
, TransactionDetails.Transactions.DateEntered
, TransactionDetails.Transactions.RelatedProductId
, CustomerDetails.CustomerProducts.CustomerFinancialProductId
, CustomerDetails.CustomerProducts.CustomerId AS 'CustomerProducts--CustomerID'
, CustomerDetails.CustomerProducts.FinancialProductId
, CustomerDetails.CustomerProducts.AmountToCollect
FROM TransactionDetails.Transactions
INNER JOIN CustomerDetails.Customers ON TransactionDetails.Transactions.CustomerId = CustomerDetails.Customers.CustomerID
INNER JOIN CustomerDetails.CustomerProducts ON CustomerDetails.Customers.CustomerID = CustomerDetails.CustomerProducts.CustomerId
WHERE TransactionId = 2
ORDER BY CustomerFinancialProductId
--Query2
SELECT TransactionDetails.Transactions.TransactionId
, TransactionDetails.Transactions.CustomerId
, TransactionDetails.Transactions.TransactionType
, TransactionDetails.Transactions.DateEntered
, TransactionDetails.Transactions.RelatedProductId
, CustomerDetails.CustomerProducts.CustomerFinancialProductId
, CustomerDetails.CustomerProducts.CustomerId AS 'CustomerProducts--CustomerID'
, CustomerDetails.CustomerProducts.FinancialProductId
, CustomerDetails.CustomerProducts.AmountToCollect
FROM TransactionDetails.Transactions
INNER JOIN CustomerDetails.FinancialProducts ON TransactionDetails.Transactions.RelatedProductId = CustomerDetails.FinancialProducts.ProductId
INNER JOIN CustomerDetails.CustomerProducts ON CustomerDetails.FinancialProducts.ProductId = CustomerDetails.CustomerProducts.FinancialProductId
WHERE TransactionId = 2
ORDER BY CustomerFinancialProductId
這裏是我已經給出比較兩個查詢。它會問哪一個導航更好?是否應該使用正確的導航?
我知道第一個查詢只返回1行,其中第二個返回11行。 另外,查詢1在事務中導航到使用ProductID的客戶,因爲它是每個列中的列。第二個查詢從Transactions到FinancialProducts,其中的交易位於Transactions表中的RelatedProductID和FinancialProducts表中的productID
這兩個查詢都會在同一個表中結束,並在該表中選擇相同的列。
最後的FinancialProductID是在第一查詢22和在第二查詢中的所有11行有22
ACTUAL問題的financialProductID:哪一個是導航到TABLE
我認爲這是一個只有你能回答的問題。由於結果不同,您需要決定哪些結果是由您的特定業務需求定義的「正確」結果。 – 2013-04-21 20:30:58
運行查詢1時,您得到了什麼結果,用'LEFT JOIN'替換了第一個'INNER JOIN'? – jerdiggity 2013-04-21 20:32:08