mysql - 如何从具有相同列/字段名称的表上的连接结果轻松创建表
问题描述
我正在尝试对具有相同架构的 2 个表进行连接:
SELECT * FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
这工作正常,直到我决定修改查询以保存它:
CREATE TABLE `tableName` SELECT * FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
这给出了一个错误,指出有重复的列。
我在两个表中都有一个主键。
我通过为每个表中的每一列起别名找到了一个解决方案,如下所示:
CREATE TABLE `tableName` SELECT tl1.id AS L_id1, tl1.filepath AS L_filepath1, tl1.urlid AS L_urlid1, tl1.fieldname AS L_fieldname1, tl1.fieldvalue AS L_fieldvalue1, tl2.id AS L_id2, tl2.filepath AS L_filepath2, tl2.urlid AS L_urlid2, tl2.fieldname AS L_fieldname2, tl2.fieldvalue AS L_fieldvalue2 FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
然而,这很乏味。如果每个表中有 100 多列怎么办?有没有办法使这项工作无需手动为每个列名起别名?我正在寻找可以让 MySQL 创建一个列名格式为“XY”的表,其中 X 是原始表名,Y 是原始字段名,但任何其他解决方案也可以。
PS:如果不清楚,当我使用“*”时,我需要两个表中的列,而不仅仅是一个。它们是两个不同的表,具有不同的数据但具有相同的列名。(顺便说一句,我不能更改名称。)
解决方案
你可以做这样的事情(我不明白你为什么要创建一个看起来你已经有两倍相同数据的第三个表):
CREATE TABLE `tableName` SELECT tl1.* FROM `tl1` INNER JOIN `tl2` ON tl1.urlid = tl2.urlid
推荐阅读
- javascript - Highcharts:如果先前的数组只有空值,则系列不会更新
- mysql - 错误代码:1290。MySQL 服务器正在使用 --secure-file-priv 选项运行
- list - Flutter 应用中的无限列表
- xpages - 如何从 XPage 的 radiogroup 中的 sessionscope 中获取价值
- php - 使用 .htaccess/functions.php 更改搜索网址
- javascript - 由于不推荐使用的圆形 json,Angular 项目创建失败
- c# - 如何设置 WCF IIS 托管服务自动启动?
- computer-vision - Pytorch:修改 VGG16 架构
- python - Python Pandas 连接多个数据帧
- swift - 十进制字段的正则表达式问题 - Swift