私はレールとプラグインを使用してタグを管理しています - 私が使用しているクエリには - タスクテーブル (ユーザーとの多対多の関係) - タグテーブル (タグへの参照を保存します - id (int), name (string ) ) - タグ付け可能なテーブル (タグ、タグ付け可能なアイテム、およびそのアイテムのタガー (私の場合はタスク) を参照する多態的なテーブル)
SQLは次のとおりです。
ActsAsTaggableOn::タグの読み込み (0.1ms)
SELECT "tags".* FROM "tags" WHERE (lower(name) = '#sharedtag')
タスク負荷 (0.4ms)
SELECT "tasks".*
FROM "tasks" INNER JOIN "task_relationships"
ON "tasks"."id" = "task_relationships"."task_id"
JOIN taggings tasks_taggings_f7b47be
ON tasks_taggings_f7b47be.taggable_id = tasks.id
AND tasks_taggings_f7b47be.taggable_type = 'Task'
AND tasks_taggings_f7b47be.tag_id = 23
WHERE "task_relationships"."user_id" = 1
ORDER BY tasks.created_at DESC
私が混乱しているのは、タスク ロードの 3 行目ですtasks_taggings_f7b47be.tag_id
。どこからともなく現れます。ある種の一時テーブルまたは作成された結合テーブルへの参照であると思いますが、最近SQLの調査を開始したばかりです。
説明、リンク、または一般的な知識をいただければ幸いです。