查询按“日期”字段排序的两个表

时间:2015-09-16 13:16:48

标签: php html mysql sql

我的mySQL数据库中有两个表。这两个表完全不同,没有任何共同之处,但它们都有一个“日期”字段。

我希望通过PHP获取“date”字段排序的两个表中的所有行。

示例:

-----------------------------------------------
name     |   category     |   date
-----------------------------------------------
PSO      |      Food      |   2015-09-16
TSI      |      Sport     |   2015-10-12
-----------------------------------------------

-----------------------------------------------
film           |   date
-----------------------------------------------
Harry Potter   |   2015-09-19
Star Wars      |   2015-11-14
-----------------------------------------------

我期望的结果是:

PSO, Food, 2015-09-16
Harry Potter, 2015-09-19
TSI, Sport, 2015-10-12
Star Wars, 2015-11-14

我该怎么做?

PS:每行表格都是我网页上的div,这些div必须按日期排序。

3 个答案:

答案 0 :(得分:1)

看起来您正在寻找UNION但结果不会与您发布的结果相同;由于UNION限制了两个表必须具有相同数量的列,但您可以为缺少的列插入NULL,如下所示。

select * from (
select name,      
category,
`date` from table1

union

select film, null, `date`
from table2) xx
order by `date`;

答案 1 :(得分:0)

尝试

SELECT name, category, concat('') AS film, date 
FROM TABLE_1 ORDER BY `date` 
UNION 
SELECT concat('') AS name, concat('') AS category, film, date 
FROM TABLE_2 
ORDER BY `date` ;

由于UNION期望在进行联合操作时列名相似,因此您可能需要使用具有空值的自定义列。

答案 2 :(得分:0)

select name ,      
category,
date from table1
union all
select film as name , null as category , date
from table2  
order by date;

确保两个表的别名相同并且当前订购.....