PHP/MySQL:通过有序选择更新有序行

PHP/MySQL:通过有序选择更新有序行,php,mysql,Php,Mysql,我花了一个多小时寻找我问题的答案,现在我真的很绝望。我希望过去经常帮助我的那个令人敬畏的网站上的你们能再次帮助我 我需要一个PHP/MySQL的解决方案,无论哪个做什么。性能也不是问题。遗憾的是,我必须处理没有主键的给定表 现实世界问题的逻辑是,一个t2.name可能有多个事件,可以按t2.date排序。可能存在一个等于t2.name的t1.name,它可能有多个事件,一个人可以按另一列t1.time排序。现在我想合并相同名称的事件,按时间匹配。换言之:具有t1.name和最新t1.time的行

我花了一个多小时寻找我问题的答案,现在我真的很绝望。我希望过去经常帮助我的那个令人敬畏的网站上的你们能再次帮助我

我需要一个PHP/MySQL的解决方案,无论哪个做什么。性能也不是问题。遗憾的是,我必须处理没有主键的给定表

现实世界问题的逻辑是,一个t2.name可能有多个事件,可以按t2.date排序。可能存在一个等于t2.name的t1.name,它可能有多个事件,一个人可以按另一列t1.time排序。现在我想合并相同名称的事件,按时间匹配。换言之:具有t1.name和最新t1.time的行应与具有最新t2.date的相同t2.name匹配。第二次出现的名称应与第二次出现的最新日期和时间相匹配,依此类推。我是如何认识到这一点的

在失败的语法中描述-我已经尝试了以下方法(以及更多):

我想要的是:

t1.name t1.time t2.date
Pete    Nov13   Dec13
Pete    Apr13   Mar13
Pete    Jan12   Feb11
我希望我能表明我的观点


感谢您提前提供的任何信息

为每个表创建自动递增键并与该键匹配

SELECT t1.name, t1.time, t2.date 
FROM (SELECT (@cnt := @cnt + 1) AS rowNumber, t1.* FROM (SELECT * FROM t1 ORDER BY time) AS t1 CROSS JOIN (SELECT @cnt := 0) AS dummy) AS t1,
     (SELECT (@cnt := @cnt + 1) AS rowNumber, t2.* FROM (SELECT * FROM t2 ORDER BY date) AS t2 CROSS JOIN (SELECT @cnt := 0) AS dummy) AS t2
WHERE t1.rowNumber = t2.rowNumber
t1.name t1.time
Pete    Nov13
Pete    Apr13
Pete    Jan12

t2.name t2.date
Pete    Mar13
Pete    Feb11
Pete    Dec13
t1.name t1.time t2.date
Pete    Nov13   Dec13
Pete    Apr13   Mar13
Pete    Jan12   Feb11
SELECT t1.name, t1.time, t2.date 
FROM (SELECT (@cnt := @cnt + 1) AS rowNumber, t1.* FROM (SELECT * FROM t1 ORDER BY time) AS t1 CROSS JOIN (SELECT @cnt := 0) AS dummy) AS t1,
     (SELECT (@cnt := @cnt + 1) AS rowNumber, t2.* FROM (SELECT * FROM t2 ORDER BY date) AS t2 CROSS JOIN (SELECT @cnt := 0) AS dummy) AS t2
WHERE t1.rowNumber = t2.rowNumber