Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 充当标记:查找具有名称的标记,如,按标记计数排序?_Sql_Ruby On Rails_Ruby On Rails Plugins_Acts As Taggable On - Fatal编程技术网

Sql 充当标记:查找具有名称的标记,如,按标记计数排序?

Sql 充当标记:查找具有名称的标记,如,按标记计数排序?,sql,ruby-on-rails,ruby-on-rails-plugins,acts-as-taggable-on,Sql,Ruby On Rails,Ruby On Rails Plugins,Acts As Taggable On,您好,我正在使用rails插件作为上的标记,我正在尝试查找名称匹配和部分匹配给定查询的前5个最常用的标记 当我执行User.skill\u counts.order('count DESC')。limit(5)。where('name LIKE?',params[:query]) 这将返回以下错误: ActiveRecord::StatementInvalid: SQLite3::SQLException: ambiguous column name: name: SELECT tag

您好,我正在使用rails插件
作为
上的标记,我正在尝试查找名称匹配和部分匹配给定查询的前5个最常用的标记

当我执行
User.skill\u counts.order('count DESC')。limit(5)。where('name LIKE?',params[:query])

这将返回以下错误:

ActiveRecord::StatementInvalid: SQLite3::SQLException: ambiguous column name: name: SELECT     tags.*, COUNT(*) AS count FROM       "tags" INNER JOIN users ON users.id = taggings.taggable_id LEFT OUTER JOIN taggings ON tags.id = taggings.tag_id AND taggings.context = 'skills' WHERE     (taggings.taggable_type = 'User') AND (taggings.taggable_id IN(SELECT     users.id FROM       "users")) AND (name LIKE 'asd') GROUP BY  tags.id, tags.name HAVING    COUNT(*) > 0 ORDER BY  count DESC LIMIT 5
但是当我做
User.skill\u时,first.name很重要

这是回报

"alliteration"

我非常感谢您在这件事上的任何帮助。

旅游查询应该是这样的

SELECT  tags.*, COUNT(*) AS count FROM  "tags" 
         INNER JOIN users ON users.id = taggings.taggable_id 
         LEFT OUTER JOIN taggings ON tags.id = taggings.tag_id AND taggings.context = 'skills'
         WHERE  (taggings.taggable_type = 'User') AND 
                (taggings.taggable_id IN(SELECT users.id FROM "users")) AND 
               (tags.name LIKE 'asd') 
         GROUP BY  tags.id, tags.name HAVING COUNT(*) > 0 
         ORDER BY  count DESC 
         LIMIT 5
为此,请尝试以下内容

User.skill_counts.order('count DESC').limit(5).where('tags.name LIKE ?', params[:query]) 

巡更查询应该如下所示

SELECT  tags.*, COUNT(*) AS count FROM  "tags" 
         INNER JOIN users ON users.id = taggings.taggable_id 
         LEFT OUTER JOIN taggings ON tags.id = taggings.tag_id AND taggings.context = 'skills'
         WHERE  (taggings.taggable_type = 'User') AND 
                (taggings.taggable_id IN(SELECT users.id FROM "users")) AND 
               (tags.name LIKE 'asd') 
         GROUP BY  tags.id, tags.name HAVING COUNT(*) > 0 
         ORDER BY  count DESC 
         LIMIT 5
为此,请尝试以下内容

User.skill_counts.order('count DESC').limit(5).where('tags.name LIKE ?', params[:query])