繁体   English   中英

mysql select 来自 3 个不同的表

[英]mysql select from 3 different tables

我正在尝试从三个不同的表中 select 并按日期列排序:

table_1:
date_1, col_1a, col_1b, col_1c, col_1d, col_1e

table_2:
date_2, col_2a, col_2b, col_2c

table_3:
date_3, col_3a, col_3b, col_3c, col_3d

我正在尝试实现以下目标:

select * from table_1, table_2, table_3 order by (date) desc

我希望在最近的日期之前订购 output。 这可能吗?

非常感谢,

尼尔。

您的查询对 3 个表进行交叉连接,这会产生 3 个表的笛卡尔积,这不是您想要的(我认为)。
我怀疑你想要UNIONUNION ALL

select 'table_1' fromtable, date_1 date, col_1a cola, col_1b colb, col_1c colc, col_1d cold, col_1e cole from table_1
union all
select 'table_2', date_2, col_2a, col_2b, col_2c, null, null from table_2
union all
select 'table_3', date_3, col_3a, col_3b, col_3c, col_3d, null from table_3
order by date

要使此代码正常工作,所有 3 个表中的相应列必须具有相同的数据类型。

如果表共享一个公共列,即table_1.date = table_2.date ,您可以进行join

SELECT * FROM table_1
    LEFT JOIN (t2 CROSS JOIN t3)
                 ON (table_2.date = table_1.date AND table_3.date = table_1.date)

如果这三个表完全不同,那么不,您不能将它们显示在一个SELECT中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM