如何在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 all
。 from
子句中的逗号语法不正确。 . .好吧,对于任何事情。
所以:
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中联合多个表[重复]的主要内容,如果未能解决你的问题,请参考以下文章