sql - SQL 创建新表时自动忽略或删除重复列
问题描述
我想从 SQL 查询创建一个新表,但是我不断得到
#1060 - 列名重复
idvisit
查询有效,但是当我尝试创建表时不断收到错误消息
CREATE TABLE marketin_testDatabase.results AS
SELECT *
FROM marketin_yolopiwik.matomo_log_link_visit_action
LEFT OUTER JOIN marketin_yolopiwik.matomo_log_visit
ON marketin_yolopiwik.matomo_log_visit.idvisit =
marketin_yolopiwik.matomo_log_link_visit_action.idvisit;
解决方案
看来您在两个表中都有共同的列名。因此,别名表和而不是星号,分别写所有列名:
CREATE TABLE marketin_testDatabase.results AS
SELECT a.idvisit, a.col1, a.col2 ....,
v.col1, v.col2 ....
FROM marketin_yolopiwik.matomo_log_link_visit_action a
LEFT OUTER JOIN marketin_yolopiwik.matomo_log_visit v
ON ( v.idvisit = a.idvisit );
如果 Only common column name is idvisit
,则以下内容可与星号一起使用:
CREATE TABLE marketin_testDatabase.results AS
SELECT a.*,
v.col1, v.col2 .... -- all columns of "matomo_log_visit" except idvisit
FROM marketin_yolopiwik.matomo_log_link_visit_action a
LEFT OUTER JOIN marketin_yolopiwik.matomo_log_visit v
ON ( v.idvisit = a.idvisit );
推荐阅读
- c# - 使用反射的动态创建的类的 getter 和 setter 的 C# 动态委托
- python - Python - Holoviews 没有图像
- c - C中的字符数组和字符串终止字符
- css - 网格不听单元格的“最小宽度:最小内容”
- android - 我无法运行 Espresso 测试
- typescript - 打字稿工厂函数签名
- node.js - bcrypt.compare 与 Promise 总是返回 false
- c# - Bot framework v4 循环对话框参考
- c# - Linq 查询不会从另一个对象中的对象返回结果
- c# - 如何获取richTextBox中添加的单词的TextPointers?