我正在尝试创建一个表,使用createtable作为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
)而不仅仅是 id
以及 id
在新table上?
我希望避免编写一个查询,在那里我必须明确地写出select中的所有列,而我们 AS
声明如下:
CREATE TABLE table_name AS
SELECT
x.id as x_id,
y.fid as y_fid,
z.fid as z_fid,
...
...
...
FROM
table_x x
LEFT JOIN
table_y y
on x.id=y.fid
LEFT JOIN
table_z z
on x.id=z.fid
...
...
...
1条答案
按热度按时间z2acfund1#
也许,我遗漏了一些东西,但是为什么要选择基本上具有相同值的列呢?
而不是:
为什么不呢?
你为什么要
NULL
价值观?我可以想象标志是否真的发生了匹配,但是没有理由仅仅因为它们在那里就包含所有列。