我可以向这个 UNION 添加一个新的自动增量列吗?

Posted

技术标签:

【中文标题】我可以向这个 UNION 添加一个新的自动增量列吗?【英文标题】:Can I add a new auto-increment column to this UNION? 【发布时间】:2021-11-09 02:52:29 【问题描述】:

我正在尝试连接两个表,从两个表中获取所有数据。

我设法联合两个表,但我需要添加一个具有自动增量的 ID 作为我正在创建的新表的主键。 我不知道该怎么做,也找不到将其添加到查询中的方法。

CREATE TABLE NEWTABLE
SELECT T1.TEXT as TEXT
       [...]
       FROM TABLE1 T1
       LEFT JOIN TABLE2 T2
            on T1.TEXT = T2.TEXT
UNION
SELECT T2.TEXT as TEXT
       FROM TABLE1 T1
       [...]
       RIGHT JOIN TABLE2 T2
            on T1.TEXT = T2.TEXT

【问题讨论】:

【参考方案1】:

您需要将列定义放在CREATE TABLE 语句中以添加id 列。然后在SELECT 查询中提供NULL 作为它的值。

CREATE TABLE NEWTABLE (
    id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    text TEXT,
    [...]
) AS
SELECT null, T1.TEXT
       [...]
FROM TABLE1 T1
LEFT JOIN TABLE2 T2
    on T1.TEXT = T2.TEXT
UNION
SELECT null, T2.TEXT as TEXT
FROM TABLE1 T1
[...]
RIGHT JOIN TABLE2 T2
    on T1.TEXT = T2.TEXT

【讨论】:

以上是关于我可以向这个 UNION 添加一个新的自动增量列吗?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以从另一个数据框向数据框添加新列吗

如何使用 phpmyadmin 向 mysql 数据库中的列添加自动增量?

sQL数据库表的主键列设为标识,增量为1,下次插入数据时能不插入主键列吗

休眠自动增量

MySQL:向 UNION 查询添加标识字段

Php - 无法创建新的数据库记录,因为主键为空(自动增量)