查询不同记录的SQL查询

时间:2015-08-26 15:31:18

标签: sql sql-server sql-server-2012 subquery

我有一个SQL查询,它连接3个表并从中拉出3个列。我试图弄清楚如何查询该查询以仅从其中一列获取不同的记录。这是我到目前为止所拥有的

Select Distinct Make.NAME
                From
            (
                Select MakeModel.MAKE_ID, Make.NAME, Vehicle.MODEL_YR
                From NagsInfo.dbo.Make
                INNER JOIN NagsInfo.dbo.MakeModel
                    on Make.MAKE_ID = MakeModel.MAKE_ID
                INNER JOIN NagsInfo.dbo.Vehicle
                    on MakeModel.MAKE_MODEL_ID = Vehicle.MAKE_MODEL_ID
                Where Vehicle.MODEL_YR = @YEAR
            )

我一直遇到多种不同的语法错误,我相信最新的一个告诉我括号不正确,但在我看来它们都是Sub查询所必需的。

1 个答案:

答案 0 :(得分:3)

为什么要使用子查询?为什么不这样做:

SELECT DISTINCT M.NAME
FROM NagsInfo.dbo.Make M
JOIN NagsInfo.dbo.MakeModel MM ON M.MAKE_ID = MM.MAKE_ID
JOIN NagsInfo.dbo.Vehicle V ON MM.MAKE_MODEL_ID = V.MAKE_MODEL_ID
WHERE V.MODEL_YR = @YEAR