我目前正在尝试使用CREATE Table AS SELECT语句创建一个表。在SELECT语句中,当前有多个表(超过10个)的连接。
CREATE TABLE table_name AS
SELECT
*
FROM
table_x x
LEFT JOIN
table_y y
on x.id=y.fid
LEFT JOIN
table_z z
on x.id=z.fid
...
...
...
由于许多表共享列名(尽管不是数据),我收到的列名重复错误。
我想知道是否存在生成列名的懒惰方式,因此没有冲突。例如,在上面的示例中,table_y
和table_z
都有名为fid
的列。
我想知道是否有办法生成名为y.id
和z.id
的列,或类似的内容(例如y_id
,z_id
),而不仅仅是{{1新表中的}和id
?
我想避免编写一个查询,我必须明确写出select中的所有列,并使用id
语句,如下所示:
AS
答案 0 :(得分:-1)
也许,我错过了一些东西,但为什么要选择基本上具有相同值的列呢?
而不是:
SELECT x.id as x_id, y.fid as y_fid, z.fid as z_fid, . . .
为什么不呢?
SELECT x.id as x_id, . . .
您是否有理由想要NULL
值?我可以想象指示匹配是否实际发生的标志,但没有理由将所有列包括在内,因为它们就在那里。