我正在使用 MySQL 和 Laravel 3。
我有下表:
tags
id INT
name INT
created_at TIMESTAMP
标签名称不是唯一的,标签与另一个cases
通过数据透视表调用的表相关联。
我需要获取按名称排序的最近创建的 50 个标签)。问题是我只想要一个命名标签的实例(例如,如果有两个标签叫做“有趣”,那么我只想返回最近的一个。
例如,假设这是我的标签表:
id name created_at
1 funny 2013-4-10
2 sad 2013-6-5
3 angry 2013-1-3
4 funny 2013-6-7
5 grumpy 2013-5-20
我想按以下顺序返回标签:
funny(4)
sad(2)
grumpy (5)
angry(3)
请注意如何只返回一个“有趣”标签(最近的一个)。
我试过这个:
$tags = DB::table('tags')->order_by('created_at', 'desc')->group_by('name')->distinct()->take(50)->get();?>
但上面的代码返回以下内容:
sad (2)
grumpy (5)
funny (1) <--- this is the earlier tag NOT the most recent one
angry (3)
不知道我在这里做错了什么......