PHP/MySQL 需要将两个表中的数据合并到一个对象并按日期排序

标签 php mysql sql sorting merge

我的数据库中有两个表。一个用于一种项目,第二个用于另一种项目(有些列相同,有些不同,第一个表包含 23 列,第二个表包含 24 列)。用户可以添加这两种项目。我以某种方式需要仅显示所有这些项目并按日期(时间戳列)对它们进行排序,因此最近添加的项目首先显示。项目是报价和需求(学生住宿)。

现在,我使用两个 SQL 查询,首先是报价(按日期排序),然后是需求(按日期排序)。但这个系统很糟糕,因为对于很多商品,用户在找到需求之前必须浏览很多页面。所以我需要将它组合起来。

我的部分代码:

$sql = "SELECT * FROM table1 ORDER BY timestamp DESC";
if ($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()){
    ...
}}

$sql1 = "SELECT * FROM table2 ORDER BY timestamp DESC";
if ($result = $mysqli->query($sql1)) {
    while($obj = $result->fetch_object()){
    ...
}}

最佳答案

您必须在查询中使用 union all 检查一下

SELECT  *

FROM (SELECT * FROM table1  WHERE "condition" UNION ALL SELECT * FROM table2 )

ORDER BY timestamp DESC;

关于PHP/MySQL 需要将两个表中的数据合并到一个对象并按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22378256/

相关文章:

mysql - SQL |插入 + 选择 + 带条件的变量?

php + mySQL 授权栈

mysql - SQL 语句忽略 where 参数

php - Youtube URL 样式哈希

php - 使用 GD 调整图像大小并将图像裁剪为白色背景的正方形

mysql - 我在 mysql 中遇到错误,例如命令 ="SELECT * FROM subjects WHERE Course LIKE (' %'+ ? + ' %')

php - sql查询后的if else语句

sql - AWS Schema Conversion Tool可以连接到Azure吗

php - 如何在 PHP POST 中传递数组变量?

php - 在 Redis 上安全存储 PHP session 的身份验证 key