从另一个表中逐列选择最大值

时间:2012-12-10 17:29:04

标签: sql join group-by grouping max

鉴于以下表格:

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。

1 个答案:

答案 0 :(得分:0)

不,如果不使用JOIN(至少在MS-SQL中),就无法做到这一点。

  

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

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