我有一个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查询所必需的。
答案 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