-1

質問で申し訳ありません、それは少しあいまいでした、私の質問を言い換えさせてください。

テーブル:

  • ユーザー: ID、名前
  • アクティビティ: id、when、tagId
  • タグ: ID、名前

したがって、ユーザーにはアクティビティがあり、各アクティビティにはタグを付けることができます。たとえば、「メールを読む」はアクティビティのタグになります。それでは、例を見てみましょう:

  • ユーザー: 1、マイク
  • アクティビティ: 1、今日、1
  • タグ: 1, メールを読む

そして、ユーザー マイクには別のアクティビティがあります。

  • 活動: 2、明日、2
  • タグ: 1, メールを読む

これで、ユーザー「mike」が「メールを読む」という 2 つのアクティビティを持っていることがわかります。そのため、ユーザーが多くのアクティビティを作成するときは、お気に入りの (最も使用されている) タグを取得する必要があります。

4

1 に答える 1

2

次の SQL は、特定のユーザーが最もよく使用するタグの名前を返します (この場合は 123 です)。

使用頻度に基づいてタグのリストが必要な場合は、 で番号を変更できますlimit 1

select tags.name 
from tags 
left join items on tags.id=items.tagId 
where items.userId=123
group by tags.name 
order by count(items.id) 
desc limit 1;
于 2011-11-25T12:45:27.013 に答える