Sql 如何使用多个嵌套查询构造公共表

Sql 如何使用多个嵌套查询构造公共表,sql,sqlite,Sql,Sqlite,我有许多视图需要转换为公共表,因为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

我有许多视图需要转换为公共表,因为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
注意:-我知道对于这个示例来说,一个简单的两个表的内部联接查询是可行的,但我真正的查询要复杂得多

我特别要问的是,;在一个公共表语句中是否可以有多个with语句

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

感谢Sergio,它可以在单级嵌套查询中工作。但是对于多级嵌套查询,例如ctTableA作为Select*FROM tableA其中fldAID=A,ctTableB作为Select*FROM tableB其中fldAID=A,ctQueryA作为Select*FROM ctTableB其中fldY=Y Select*FROM ctTableA内部连接ctQueryA在ctTableA.fldX=ctQueryA.fldXHi Sheils上,该如何处理呢。我已经回复了能否在一个公共表语句中包含多个with语句。我看到您在用声明多个,并更正了代码。“如果那不是你想要的,我也不完全确定你想要达到什么。”Sheils,那是另一个问题。不管怎样,是什么阻止了你们去尝试呢?嗨,伙计们,我已经尝试过了,它在一个级别上工作,但在多个级别的查询中我遇到了麻烦。同意塞尔吉奥已经回答了最初的问题。所以我将关闭这个OneBook,让我把它放在一起,但它成功了。谢谢,guysMySQL不支持CTEs,所以我删除了那个标签。