2017-07-21 53 views
0

如果我有一個查詢,看起來像這樣:SQL:先從____ IN子句性能

START WITH Table1.value1 IN 
(SELECT DISTINCT value2 from Table2) 

我怎樣才能將其更改爲加入,使得它看起來是這樣的?

START WITH 
(SELECT DISTINCT value1 from Table1 
INNER JOIN value2 from Table2 
ON value1 = value2) 

以上查詢本身不起作用,我無法弄清楚如何使它工作。這裏的錯誤: ORA-00936:缺少表達 00936. 00000 - 「失蹤表達」 *原因:
*動作: 行錯誤:15列:10

基本上我試圖取代用JOIN來提高性能,但是如果IN前面有START WITH,我不知道該怎麼做。

+0

什麼錯誤你找回?如果Table2包含一個名爲value1的列,那麼這可能是一個別名問題。 – WJS

+2

您正在使用哪些RDBMS?我不認識到,從條款開始。 ps:說不起作用不會有多大幫助。寫錯誤消息,至少 –

+0

這裏的錯誤:ORA-00936:缺少表達 00936. 00000 - 「失蹤表達」 *原因: *動作: 行錯誤:15列:10 –

回答

0

您的JOIN語法錯誤,或者至少是您發佈的查詢中的一個。

儘量讓JOIN這樣的:

START WITH 
(SELECT DISTINCT value1 from Table1 
INNER JOIN Table2 
ON table1.value1 = table2.value2)