0

给定下表:

tableA(v1,v2)
tableB(v3,v4)
tableC(v5,v6)

我想编写如下查询:

SELECT MAX(v1)
FROM tableA
WHERE v2 IN (SELECT v3
             FROM tableB
             WHERE v4 IN (SELECT v5
                          FROM tableC
                         )
             )
GROUP BY v6

只有使用 IN 才能实现这样的事情吗?我知道如何通过在我的三个表之间使用 JOIN 来编写它,但我不想使用 JOIN。

4

1 回答 1

0

JOIN不,不使用(至少在 MS-SQL 中)是不可能做到这一点的。

GROUP BY 子句中的表达式可以包含 FROM 子句中的表、派生表或视图的列。这些列不需要出现在 SELECT 子句列表中。

http://msdn.microsoft.com/en-us/library/ms177673.aspx

于 2012-12-10T18:34:08.447 回答