php - 从 2 个表中选择记录并排序

标签 php mysql

我有 2 个表 A 和 B,记录如下

--TABLE A--  
id        date          value  
1        09/01/2012    Reward  
2        09/01/2012    Purchase  
3        07/01/2012    Reward  
4        07/01/2012    Purchase

--TABLE B--  
id   id_from_a     date           value  
1       1         10/01/2012     Generated Rewrd   
2       3         08/01/2012     Generated Reward 

现在我希望结果如下所示

id        date          value  
1         10/01/2012    Generated Reward  
1         09/01/2012    Reward  
2         09/01/2012    Purchase  
3         08/01/2012    Generated Reward  
3         07/01/2012    Reward  
4         07/01/2012    Purchase  

我知道使用 UNIONS 会合并这 2 个表,但我如何像上面提到的那样对其进行排序?

最佳答案

UNION 可以在末尾指定一个 ORDER BY 子句,该子句适用于整个组合结果集。

SELECT id, date, value
    FROM table_A
UNION
SELECT id, date, value
    FROM table_B
ORDER BY id, date DESC

如果您不需要 UNION 操作的重复数据删除功能,UNION ALL 将产生更好的性能。

SELECT id, date, value
    FROM table_A
UNION ALL
SELECT id, date, value
    FROM table_B
ORDER BY id, date DESC

关于php - 从 2 个表中选择记录并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811033/

相关文章:

mysql - NOT IN 子查询与 ON != 操作

php - 如何提高 MySQL 的速度,例如通配符 '%search%' 或备用数据库

javascript - 使用 jQuery 获取 2 个下拉菜单项的选定值

php - 拉维尔 5.5 : Sessions not working

mysql - SQL使用带有字母数字数据的数字排序对列(varchar(255))进行排序

php - 检查用户名是否已经存在不会显示正确答案

c# - 优化 sqlite 插入查询

php - CodeIgniter 中 select_avg() 的小数位数

php - PHP 中的重复项排序

mysql - 如何将 time_t 字段存储到 MySQL 日期时间?