如何在MYSQL中联合多个表[重复]

Posted

技术标签:

【中文标题】如何在MYSQL中联合多个表[重复]【英文标题】:How to union multiple table in MYSQL [duplicate] 【发布时间】:2020-01-05 19:17:42 【问题描述】:

如何在mysql中合并多个表并按日期排序?

我有 3 个不同的表,我想查询其中的所有数据并按日期排序

SELECT * FROM table1, table2, table3 ORDER by date DESC


TABLE 1 

ID  |  USER ID | DATE | 
 2      4        2018

TABLE 2 

ID  |  CAR ID | DATE | 
 3       9      2017

TABLE 3

ID  |  AIR ID | DATE | 
 4      6        2019

我期待这样的结果

ID | ALLID | DATE
2      4      2018
3      9      2017
4      6      2019

【问题讨论】:

现在你正在做(隐式)交叉连接。 向我们展示几行示例表数据,以及预期的结果。 (作为格式化文本,而不是图像。) 既然你在问题中提到了 UNION,你不是用谷歌搜索的吗? 不知道怎么用 【参考方案1】:

union 的正确语法是 union/union allfrom 子句中的逗号语法不正确。 . .好吧,对于任何事情。

所以:

select id, allid, date from table1
union all
select id, allid, date from table2
union all
select id, allid, date from table3
order by date desc;

【讨论】:

【参考方案2】:

您将无法创建第二列 ALLID,但是您可以使用 Join 来创建表,但如果您尝试按 ID 搜索,则搜索结果会很困难。能否提供更多背景信息。

要将表 1 和表 2 连接在一起,您需要有一个主键和一个外键,因此表 1 中的列和表 2 中的列都出现在表 3 中。

所以您可以使用表 1 中的 ID 和表 2 中的日期,因为两者都在表 3 中,所以这些是您的加入附件: 基本连接:所有数据

     SELECT * FROM table1 t1 JOIN table3 t3 JOIN table2 t2

更多细节:(使用 on 作为 where 子句根据特定日期进行过滤)

     SELECT * FROM table1 t1 JOIN table3 t3 JOIN table2 t2 ON t3.DATE=t2.DATE

【讨论】:

以上是关于如何在MYSQL中联合多个表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

DB2 中联合查询的重复数据删除

Mysql中联合索引的最左匹配原则(百度)

MySQL JOIN

left join 右表多条数据重复

在sql数据库中联表查询,实现在多个表之间的数据取出,进行排序,分页显示,速度很慢,请高人指点!

Linux下mysql如何关联多张数据表