MySQL查询区别于巴黎PHP

时间:2012-11-28 08:22:28

标签: php mysql sql idiorm

我需要使用Paris / idiorm PHP来构建我的查询。我尝试了很多可能性但却找不到解决方案。我是PHP和SQL的新手,对ORM了解不多。我只是觉得有人会帮助我构建查询以获取上次更新时间戳的不同名称。

-----------------------------------------
id  |   name       |    timestamp
-----------------------------------------
1   |   testuser   |  2012-11-19 17:02:48
2   |   testuser   |  2012-11-28 11:15:46
3   |   testuser   |  2012-11-19 11:02:49
4   |   testadmin  |  2012-11-28 10:50:05
5   |   testadmin  |  2012-11-28 11:15:46
-----------------------------------------

我做了以下查询,并且能够获取名称及其第一个时间戳,但无法获取最新的时间戳

    $output = ORM::for_table('sample')
                ->raw_query('SELECT id,name,timestamp FROM sample GROUP BY name',array())
                ->find_many();

希望有一些解决方案。

3 个答案:

答案 0 :(得分:1)

获取子查询中每个名称的最新时间戳,然后将其连接回自身。尝试,

SELECT a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT name, MAX(timestamp) maxStamp
            FROM tableName
            GROUP BY name
        ) b ON a.name = b.name AND
                a.timestamp = b.maxStamp

答案 1 :(得分:0)

$output = ORM::for_table('sample')
  ->distinct()
  ->raw_query('SELECT id,name,timestamp FROM sample GROUP BY name',array())
  ->find_many();

答案 2 :(得分:0)

 $output = ORM::for_table('sample')
                ->raw_query('SELECT DISTINCT(name),id,timestamp FROM sample ORDER BY id DESC',array())
                ->find_many();

希望这会有所帮助

我尝试订购DESC,您将获得用户的最后或最新日志