首页 > 解决方案 > 将两个不同的表组合在一起进行查询

问题描述

我有两个共享一些列名的表,但我并不关心。

我只想合并这两个表并按 created_at 日期排序。对于其中一列,我想在其来自表 b 时填充默认值

我会拿一张这样的桌子

ID 创建 标题 类别
13 2021-01-01 “你好” 欢迎留言
16 2021-01-03 “你好” 欢迎留言

将它与这样的表结合起来

ID 创建 关联
13 2021-01-02 搜狐网

我正在寻找这样的东西

ID 创建 关联 标题 类别
0 2021-01-01 空值 “你好” 欢迎留言
1 2021-01-02 搜狐网 空值 表B项目
2 2021-01-03 空值 “你好” 欢迎留言

我如何最好地解决这个问题?我只需要这个表来进行查询。我正在使用rails和mysql 5.7。谢谢!

标签: mysqlsqlruby-on-railsmysql-5.7

解决方案


您可以使用:

select (@rn := @rn + 1), created, link, title, category
from ((select ids, created, null as link, title, category
       from table1
      ) union all
      (select id, created, link, null, 'tableB item'
       from table2
      )
      order by created
     ) tt cross join
     (select @rn := 0) params

推荐阅读