我有两个 MySQL 表,都带有时间戳(日期/时间)...我需要一个查询来将它们组合起来并按时间戳(2013-08-21 13:13:47)对它们进行排序。
Table 1
---------------------------------------
Timestamp | Col 1 | Col 2 | Col 3
Table 2
---------------------------------------
Timestamp | Col 1 | Col 2 | Col 3 | Col 4
我要打印
PRINT OUT (in order by timestamp)
----------------
Timestamp | Col 1 | Col 2 | Col 3 | Col 4
Timestamp | Col 1 | Col 2 | Col 3
Timestamp | Col 1 | Col 2 | Col 3
Timestamp | Col 1 | Col 2 | Col 3 | Col 4
Timestamp | Col 1 | Col 2 | Col 3
Timestamp | Col 1 | Col 2 | Col 3 | Col 4
Timestamp | Col 1 | Col 2 | Col 3
Timestamp | Col 1 | Col 2 | Col 3 | Col 4
Timestamp | Col 1 | Col 2 | Col 3 | Col 4
最简单的方法是什么?我应该将两个表放入一个数组然后排序吗?或者我应该使用 sql 查询来执行此操作?
我正在使用 PHP 和 MySQL...
最佳答案
假设 Table1.Col1 与 Table2.Col1 具有相同类型的数据,Table1.Col2 与 Table2.Col2 具有相同类型的数据,依此类推,那么这可能是最简单的方法。联合中的表必须具有相同的列数。我用NULL代替Col4。您可能需要在 ORDER BY 子句中添加其他列。
select T1.Timestamp, T1.Col1, T1.Col2, T1.Col3, NULL as Col4
from Table1
union all
select T2.Timestamp, T2.Col1, T2.Col2, T2.Col3, T2.Col4
from Table2
order by Timestamp
仅当名称相似的列具有相同类型的数据时,才有意义。如果 Table1.Col1 包含姓名,而 Table2.Col1 包含电话号码,则这样做没有多大意义。
关于php - 组合/排序两个日期时间表/数组/列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18367817/