MySQL と Laravel 3 を使用しています。
次の表があります。
tags
id INT
name INT
created_at TIMESTAMP
cases
タグ名は一意ではなく、タグはピボット テーブルを介して呼び出される別のテーブルに関連付けられます。
最近作成された 50 個のタグを名前順に並べ替える必要があります)。問題は、名前付きタグのインスタンスが 1 つだけ必要なことです (たとえば、「funny」というタグが 2 つある場合、最新のものだけを返したいとします。
たとえば、これが私のタグ テーブルであるとします。
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)
「面白い」タグが 1 つだけ返されていることに注意してください (最新のタグ)。
私はこれを試しました:
$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)
ここで何が間違っているのかわかりません...