2012-12-10 23 views
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 

是这样的可能只有使用在??我知道如何通过在我的三个表之间使用JOIN来编写它,但我不想使用JOIN。

+2

只是出于兴趣,为什么你不希望使用联接? –

+2

不想使用连接就像不想使用'where'或'order by' ...它们是Sql的基础。 –

+0

在我使用的dbms中,'IN'比使用'JOIN'要快得多,因为我想比较一个表中只有一个值与另一个值之间的值...所以我只是在类似上述可以做.. –

回答

0

不,不可能不使用JOIN(至少在MS-SQL中)这样做。

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

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

+0

谢谢你的回应... –

相关问题