不知这段SQL语句的意思,帮忙解决SELECT  TOP 5 
    CMRC_OrderDetails.ProductID,
    CMRC_Products.ModelName,
    SUM(CMRC_OrderDetails.Quantity) as TotalNumFROM    
    CMRC_OrderDetails
  INNER JOIN CMRC_Products ON CMRC_OrderDetails.ProductID = CMRC_Products.ProductIDWHERE   OrderID IN 
(
    /* This inner query should retrieve all orders that have contained the productID */
    SELECT DISTINCT OrderID 
    FROM CMRC_OrderDetails
    WHERE ProductID = @ProductID
)
AND CMRC_OrderDetails.ProductID != @ProductID GROUP BY CMRC_OrderDetails.ProductID, CMRC_Products.ModelName ORDER BY TotalNum DESC

解决方案 »

  1.   

    就是把一个表和另一个表的相关字段关联起来,用此关联可以同时获取两个表的内容,如果一个表中相关字段没有相应的值则另一个表中的记录也不会显示,用outer join则只要一个表有记录就会显示
      

  2.   

    谢谢楼上这位,感觉这后面好长:WHERE   OrderID IN 
    (
        /* This inner query should retrieve all orders that have contained the productID */
        SELECT DISTINCT OrderID 
        FROM CMRC_OrderDetails
        WHERE ProductID = @ProductID
    )
    AND CMRC_OrderDetails.ProductID != @ProductID GROUP BY CMRC_OrderDetails.ProductID, CMRC_Products.ModelName ORDER BY TotalNum DESC
    条件当中怎么也有SELECT .......