Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL从按日期排序的两个表中进行选择_Php_Mysql_Sql - Fatal编程技术网

Php MySQL从按日期排序的两个表中进行选择

Php MySQL从按日期排序的两个表中进行选择,php,mysql,sql,Php,Mysql,Sql,这里是初学者,所以请对我放松:) 所以我的数据库中有这两个表 答复表 请求表(完全相同) 问题: 他们提供一个我正在测试的消息传递应用程序,但现在我不知道如何查询这些表,以便从两个表中按日期排序所有聊天。比如说 客户14(2小时前):您好//来自请求表 管理员(1小时前):欢迎//来自回复表 所以消息首先显示 我尝试在clien\u id上使用JOIN,因为这正是我想要的。然而,它似乎不起作用 我还尝试从包含UNION ALL的子查询中进行选择,但也没有成功。。。关于如何做到这一点有什么想法吗?

这里是初学者,所以请对我放松:)

所以我的数据库中有这两个表

答复表 请求表(完全相同) 问题: 他们提供一个我正在测试的消息传递应用程序,但现在我不知道如何查询这些表,以便从两个表中按日期排序所有聊天。比如说

客户14(2小时前):您好//来自请求表
管理员(1小时前):欢迎//来自回复表

所以消息首先显示

我尝试在
clien\u id
上使用
JOIN
,因为这正是我想要的。然而,它似乎不起作用


我还尝试从包含
UNION ALL
的子查询中进行选择,但也没有成功。。。关于如何做到这一点有什么想法吗?提前谢谢

A
union
是您要寻找的。在您的例子中,
join
会将两个表中的列合并到一行中,当您希望将多个表中的行合并到一个结果集中时

select a.message
from table1 a
inner join
table2 b 
on a.client_id=b.client_id 
order by a.date_posted desc;
您需要将select语句单独括起来,然后添加order子句

编辑:根据OP的评论更新此答案以包含源表的一列

(select source='reply_table', * from reply_table)
union
(select source='request_table', * from request_table)
order by date_posted desc
MySQL的文档非常好,其关于unions的页面概述了几种排序方案:

但针对您的案例的说明是:

要使用ORDER BY或LIMIT子句对整个联合结果进行排序或限制,请将各个SELECT语句括起来,并将ORDER BY或LIMIT放在最后一个语句之后


你要找的是
工会。在您的例子中,
join
会将两个表中的列合并到一行中,当您希望将多个表中的行合并到一个结果集中时

您需要将select语句单独括起来,然后添加order子句

编辑:根据OP的评论更新此答案以包含源表的一列

(select source='reply_table', * from reply_table)
union
(select source='request_table', * from request_table)
order by date_posted desc
MySQL的文档非常好,其关于unions的页面概述了几种排序方案:

但针对您的案例的说明是:

要使用ORDER BY或LIMIT子句对整个联合结果进行排序或限制,请将各个SELECT语句括起来,并将ORDER BY或LIMIT放在最后一个语句之后


您是如何尝试全部联合的?您是如何尝试全部联合的?字段列表中的消息模糊不清使用a.message或b.message不是我想要的谢谢您的尝试使用a.message或b.message不是我想要的谢谢您的帮助。。工作。。我确实需要在表中添加一个标志列,以了解哪个消息来自哪个表。。。谢谢!!!不客气,我很高兴这有帮助!我对“告诉消息来自哪个表”的建议是在select查询中输入正确的值,而不是一个全新的列。例如:
选择source='reply',从reply_表中选择*。。我不知道那是可能的。。在树屋或大学里,他们不会教你那些热门的东西。。工作。。我确实需要在表中添加一个标志列,以了解哪个消息来自哪个表。。。谢谢!!!不客气,我很高兴这有帮助!我对“告诉消息来自哪个表”的建议是在select查询中输入正确的值,而不是一个全新的列。例如:
选择source='reply',从reply_表中选择*。。我不知道那是可能的。。在树屋或大学里,他们不会教你那些热门的东西
(select source='reply_table', * from reply_table)
union
(select source='request_table', * from request_table)
order by date_posted desc