--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