我正在尝试实现自动查询生成器,而我对一种查询的方法是采用这种方式嵌套嵌套 选择*从((Q1在Q1.x上加入Q2 = Q2.x)作为T1在T1.x = Q3上加入Q3)作为T2)在T2.x = Q4.x上加入Q4)作为T3 ...
我试图以这种方式实现它,但是语法似乎是错误的
SELECT
*
FROM
(
(
SELECT
*
FROM
(
Select
*
From
Customers
) AS q11
INNER JOIN (
Select
*
From
Customers
) AS q12 ON q11.customerID = q12.customerID
)
) q1
JOIN (
Select
*
from
Customers
) q2 ON q1.q11.CustomerID = q2.CustomerID
答案 0 :(得分:2)
Select语句和子查询不返回带点的列。
所以q1.q11.CustomerID没有意义。
SQL JOIN计算交叉联接。该值首先在每个左表列中都有一列,并带有左表列的名称;那么该值在每个右表列中都有一个列,并带有右表列的名称。列通过点列名称(也称为列引用)标识,但它们的名称没有点。 SELECT *
返回所有这些列,因此当输入表共享名称时,它返回重复的名称。但是名称中没有点。
答案 1 :(得分:0)
from子句中的查询适合创建表。
select * from(选择* from(选择* from(选择* from q1,q2其中q1.x = q2.x))t1,q3其中t1.x = q3.x)t2,q4其中t2.x = q4.x)t3,q5其中t3.x = q5.x