0

My db entries

id | shop_id | last_changed
1  |     1   |   7 pm
2  |     1   |   8 pm
3  |     2   |   9 pm
4  |     2   |   8 pm
5  |     3   |   5 pm

My query should be that I only get entries with the id:

2, 3, 5 

When I do this:

$q = Doctrine_Query::create()
         ->from('list e')
         ->groupBy('e.shopname_id')
         ->orderBy('e.last_changed DESC')
         ->limit(6)
         ->fetchArray();

I get: 1, 4, 5. Even if I do e.last_changed ASC, it doesn't work.

I want only the entries those who have last_changed and different shop_id's. How can I do it?

Thanks!

Rob
  • 4,927
  • 12
  • 49
  • 54
craphunter
  • 820
  • 2
  • 15
  • 27

1 Answers1

2

Try this:

$q = Doctrine_Query::create()
        ->select('e.shopname_id, MAX(e.id) AS id, MAX(e.last_changed) AS last_changed')
        ->from('list e')
        ->groupBy('e.shopname_id')
        ->orderBy('MAX(e.last_changed) DESC')
        ->limit(6)
        ->fetchArray();
Ross Smith II
  • 11,799
  • 1
  • 38
  • 43