我可以向这个 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 数据库中的列添加自动增量?