2015-10-18 47 views
0

我有很多視圖需要轉換爲公用表,因爲where條件需要動態更改。我只能使用公共表來處理一個子查詢。是否有可能在下面的例子中如何構建具有多個嵌套查詢的公共表

WITH ctTableA AS (Select * FROM tableA WHERE fldAID=A) 

WITH ctTableB AS (Select * FROM tableB WHERE fldAID=A) 

SELECT * FROM ctTableA 
INNER JOIN ctTableB ON ctTableA.fldX=ctTableB.fldX 

NB使用一個以上的爲: - 我知道,簡單內連接的2個表的查詢將在這個例子中工作,但我真正的查詢要複雜得多。

我特別要求的是;我們能不能有超過1 with語句共同TABLE語句

+0

MySQL不支持熱膨脹係數,所以我刪除了標籤。 –

回答

2

內試試這個

WITH 
ctTableA AS (Select * FROM tableA WHERE fldAID=A), 
ctTableB AS (Select * FROM tableB WHERE fldAID=A) 

SELECT * FROM ctTableA INNER JOIN ctTableB ON ctTableA.fldX=ctTableB.fldX 
+0

謝謝塞爾吉奧,它適用於單層嵌套查詢。但是,多級嵌套查詢呢,例如 WITH WITH ctTableA AS(Select * FROM tableA WHERE fldAID = A),ctTableB AS(Select * FROM tableB WHERE fldAID = A),ctQueryA AS(Select * FROM ctTableB where fldY = Y SELECT * FROM ctTableA INNER JOIN ctQueryA ON ctTableA.fldX = ctQueryA .fldX' – Sheils

+0

Hi Sheils。我已經回答「我們可以在一個公共表格語句中使用多於一個的語句」,我看到你聲明瞭多個WITH,代碼如果這不是你想要的結果,我不完全確定你想要實現什麼。 – Sergio

+0

@Sheils這是一個不同的問題,無論如何,什麼阻止你只是試一試? –