连接顺序SQL Server

时间:2017-04-18 22:22:09

标签: sql sql-server join

今天早些时候,我在MS SQL Server中编写了多个JOIN查询时遇到了一个奇怪的问题,我希望有人能够帮助我更好地理解。通常我喜欢按照我在SELECT语句中从它们中提取的顺序连接表(对我来说似乎更简单,更清晰)。以下声明仅适用于SELECT语句的顺序,我不知道原因。如果我重新编写它以加入VW_ORDER_HEADER - > VW_ORDER_ITEM - >按顺序VW_PO_ITEM它不返回任何结果。我在Access中设计它并查看生成的SQL后才发现它有效。我不是SQL Server的新手,但是第一眼和第二眼我无法理解为什么连接的顺序会有所作为...提前感谢

 SELECT O.SALES_ORDER_NUMBER, 
           O.BILL_TO, 
           O.SHIP_TO, 
           O.SOLD_TO, 
           O.ORDER_DATE,
           O.REQUESTED_DELIVERY_DATE, 
           O.VALID_TO_DATE, 
           O.OPEN_QUANTITY,
           OI.MATERIAL, 
           PI.PO_NUMBER



    FROM   VW_PO_ITEM PI 

    JOIN   VW_ORDER_ITEM OI ON PI.MATERIAL = OI.MATERIAL 

    JOIN   VW_ORDER_HEADER O ON OI.SALES_ORDER_NUMBER = O.SALES_ORDER_NUMBER

    WHERE  OI.MATERIAL = 'BA7948' 

    AND    O.OPEN_QUANTITY > 0 

    AND    O.VALID_TO_DATE >= GETDATE()

    ORDER BY O.SALES_ORDER_NUMBER, 
             O.ORDER_DATE ASC;

0 个答案:

没有答案