PHP中的最新操作?

PHP中的最新操作?,php,sql,join,Php,Sql,Join,如果您转到,并向下滚动一点,您将看到“最新消息”框 现在我想做一些类似的事情,但需要修改 我有3个查询,从3个表中获取信息。但这并没有告诉我“最新消息”,因为这是3个独立的查询 现在我想制作一个框(我可以在css中实现),它显示这3个表的最新列, 按dato DESC排序 以下是表格: 表名:成员会议 要显示的列:meetup 表:会员电影 要显示的列:navn 表:会员指南 要显示的列:标题 按dato排序。。 所有这些表都有“dato”列,所以我想从dato DESC中进行分类 通过这种方式

如果您转到,并向下滚动一点,您将看到“最新消息”框

现在我想做一些类似的事情,但需要修改

我有3个查询,从3个表中获取信息。但这并没有告诉我“最新消息”,因为这是3个独立的查询

现在我想制作一个框(我可以在css中实现),它显示这3个表的最新列, 按dato DESC排序

以下是表格:

表名:成员会议

要显示的列:meetup

表:会员电影

要显示的列:navn

表:会员指南

要显示的列:标题

按dato排序。。 所有这些表都有“dato”列,所以我想从dato DESC中进行分类

通过这种方式,这将是这三个表中的最新操作

例如,它将显示如下:
最新行动:
我爱聚会-23:11:02-01/01/01(会员聚会中的一列)
我喜欢教程-23:10:00-01/01/01(会员教程中的一个专栏)
我首先喜欢教程-22:59:00 01/01/01(会员教程中的一个专栏)
我讨厌电影22:42:00 01/01/01(成员电影中的一列)

等等。。如您所见,按DATO排序显示了3个表中最后一列的标题+DATO。

问题请评论,并请用不太难的英语回答,正如你可能听到的,我自己不是英国人。
多谢各位


我的问题是:如何做到这一点?

从我收集的信息中,你实际上不会问任何问题

但我会尽力回答你的问题


您应该使用mySQL连接。(我假设您正在使用mySQL)


然后,您可以在单个查询中执行所需的操作。如果您提供了有关DB模式的更多信息,那么就可以为您构造精确的查询

您想使用
联合
。下面是一个示例查询:

SELECT meetup AS text, dato FROM Member_meetups UNION
SELECT navn AS text, dato FROM member_film UNION
SELECT title AS text, dato FROM member_tutorials
ORDER BY dato DESC
LIMIT 10;
我只选择了您指定的列;如果需要从每个表中获得更多的列,则根据需要修改查询。只要确保根据需要使用
AS
函数将列名对齐,以规范化数据

您应该考虑缓存这些数据;这通常是一个相当慢的查询

编辑以回答评论中的问题:

我不完全清楚您希望它如何工作,如果没有DB的模式,很难编写完整的查询,但要点如下:

SELECT m.meetup AS text, m.dato FROM Member_meetups m
INNER JOIN member_battles b
ON m.battle=b.id
WHERE b.fighter1=$pUsername OR b.fighter2=$pUsername UNION
SELECT navn AS text, dato FROM member_film UNION
SELECT title AS text, dato FROM member_tutorials
ORDER BY dato DESC
LIMIT 10;

同样,这是非常粗糙的,因为我不知道数据库的模式,也不完全理解您希望查询做什么。如果你需要更具体的帮助,我建议你要么编辑你的问题,要么开始一个新的问题。很难用评论来处理这类事情。

对不起,我从来没有写过问题。但是我使用的是mysql和php,我是这方面的新手,那么我可以从哪里获得数据库模式呢。编辑你上面的问题。为什么人们投票接近请告诉我哪里错了,如果可以的话,我会提供更多细节。但是我应该如何回应这个问题呢?您知道结果将是一个包含两列(text和dato)的表,其中包含所有3个表的内容,您可以像返回单个表一样循环遍历它。如果您正在按程序使用MySQL:while($row=MySQL\u fetch\u assoc($query)){echo$row['text'].-'.$row['dato'];}您好,谢谢您,这非常有效!!因此,如果我需要更多列,我应该这样做,例如:选择meetup作为文本,选择battle作为文本,选择member_meetups中的dato?我认为您无法将同一表中的两列重命名为“text”。我不确定“battle”列包含什么内容,但使用“AS”代替“AS text”,然后如果您的其他表中有类似的列,请使用相同的“AS”语句将它们匹配起来,您将得到一个包含3列的结果表:text和dato.Hello。我只是想知道这一点,因为我想选择“fighter2”或“fighter1”,其中包含=$pUsername in member_battles。我可以在这个查询中这样做吗?还是太难了。。希望我不要要求太多