2012-12-10 50 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

謝謝你的迴應... –

相關問題