0
TABLE 1
id  time1   info
1   110 info1
2   120 info2

TABLE 2
id  time2   info
1   100 info3
2   130 info4

我怎么能一次从两个表中提取数据并按 time1 和 time2 排序(同样的事情,但字段有不同的名称)

Expected result row ids:
1 // table 2
1 // table 1
2 // table 1
2 // table 2
4

1 回答 1

2

您应该使用UNION JOIN查询,将公共排序列(time1 和 time2)命名为具有相同名称并对整个重新组合的结果集进行排序。

(SELECT id, time1 AS time, info FROM table1)
    UNION
(SELECT id, time2 AS time, info FROM table2)
    ORDER BY time

不幸的是,这意味着不能为每个表返回不同的表结构。他们必须匹配列数等。

解决方法是这样的:

(SELECT id, time1 AS time, info, extra_column FROM table1)
    UNION
(SELECT id, time2 AS time, info, NULL AS extra_column FROM table2)
    ORDER BY time
于 2012-06-28T20:48:33.413 回答