具有相同列名的 MySQL 连接表

Posted

技术标签:

【中文标题】具有相同列名的 MySQL 连接表【英文标题】:MySQL Join Table which have had same column name 【发布时间】:2015-05-18 03:04:19 【问题描述】:

我想将这两个具有相同列名的表连接起来,以获得如下的最终结果。我该怎么做?

表 1,(主要:-关键日期)

-------------------------------
|        date         | value |
-------------------------------
| 2015-05-16 03:21:46 |   2   |
-------------------------------

表 2,(主要:-关键日期)

-------------------------------
|        date         | value |
-------------------------------
| 2015-05-16 03:21:46 |   3   |
-------------------------------

期待最终结果

-------------------------------------------------------
|        date         | value(table1) | value(table2) |
-------------------------------------------------------
| 2015-05-16 03:21:46 |       2       |        3      |
-------------------------------------------------------

【问题讨论】:

【参考方案1】:

只需在对列寻址时添加表名:

SELECT date, table1.value as value1, table2.value as value2
    FROM table1
    JOIN table2 USING (date)

这会给你这个结果:

-----------------------------------------
|        date         | value1 | value2 |
-----------------------------------------
| 2015-05-16 03:21:46 |   2    |   3    |
-----------------------------------------

【讨论】:

您好,我尝试了您提供的上述 sql。它引发了错误。 #1054 - “字段列表”中的未知列“table1.value”。顺便说一句,托尼有一个完整的答案。【参考方案2】:
SELECT t1.date, t1.value as value1, t2.value as value2
FROM table1 t1
JOIN table2 t2 ON t1.date = t2.date

【讨论】:

这个可行,但是当字段名称特别相同时,只需使用@Timo提供的解决方案

以上是关于具有相同列名的 MySQL 连接表的主要内容,如果未能解决你的问题,请参考以下文章

具有相同列名的命名查询内部连接表的重复数据/值

当两个表具有相同的 dist 和 sort 键,但列名不同时,Redshift 是不是执行合并连接?

Mysql中具有相同列名的表之间的数据复制

mysql-两表连接列名不能相同

使用 SQL 和 Sqlalchemy 查询的表具有相同的列名

连接两个具有不同键名的表