SQL-TABLE CREATION

时间:2015-05-20 13:41:22

标签: sql

请在'FROM TABLE_ABC A'之后向我解释使用逗号。它如何在执行sql查询时起作用。

CREATE TABLE ABCD AS
( SELECT A.* 
FROM TABLE_ABC A,
(SELECT COL_1,COL_2 FROM
 (SELECT B.*,C.* FROM
TABLE_XYZ B, TABLE_MNO C
WHERE B.COL_X=C.COL_Y
)D
)A.COL_C=D.COL_D
)
WITH DATA PRIMARY INDEX(SASAJS)

2 个答案:

答案 0 :(得分:1)

类似于加入

select * from #tempA ta join #tempB tb
on ta.ID = tb.ID

相同
select * from #tempA ta, #tempB tb
where ta.ID = tb.ID

使用JOINS使代码更易于阅读

答案 1 :(得分:0)

您正在使用select创建第二个表,该表也是从另一个子选择中创建的。看到这样,你就会更好地理解它:

CREATE TABLE ABCD AS(
            SELECT
                A.*
            FROM
                TABLE_ABC A,
                (
                    SELECT
                        COL_1,
                        COL_2
                    FROM
                        (
                            SELECT
                                B.*,
                                C.*
                            FROM
                                TABLE_XYZ B,
                                TABLE_MNO C
                            WHERE
                                B.COL_X = C.COL_Y
                        ) D
                ) 
            WHERE
                A.COL_C = D.COL_D
) WITH DATA PRIMARY INDEX(SASAJS)

但是您的原始代码在A.COL_C = D.COL_D之前缺少WHERE CLAUSE。我加入了它。

我假设B. *或C. *有一个名为COL_D的列,A也有它。如果D在最后一个WHERE之前的那个之后也会更好