最近在啃SQL书,发现这条神一样的SQL语句真心看不懂:

SELECT ProductID, Name 
FROM Production.Product AS P 
WHERE 2 = ( SELECT top 1 ProductSubCategoryID 
FROM Sales.SalesOrderDetail AS SD
WHERE P.ProductID = SD.ProductID)

我一开始以为ProductSubCategoryID 是 Sales.SalesOrderDetail表的字段。
后来才发现错了,它是Production.Product表的字段。
最后发现它实际上和下面这句SQL意思是同等的。

SELECT ProductID, Name 
FROM Production.Product AS P 
WHERE ProductSubCategoryID=2
AND EXISTS(SELECT * FROM Sales.SalesOrderDetail AS SD WHERE SD.ProductID = P.ProductID)

樊潇洁
415 声望23 粉丝

笨鸟先飞


引用和评论

0 条评论