gpt4 book ai didi

sql - rails : Get all items tagged x AND y AND z

转载 作者:行者123 更新时间:2023-12-04 05:21:29 24 4
gpt4 key购买 nike

我有两个型号:ItemTag .两者都有一个 name 属性。我想找到标有多个标签的项目。

class Item < ActiveRecord::Base
has_many :tags
validates_presence_of :name
end

class Tag < ActiveRecord::Base
belongs_to :item
validates_presence_of :name
end

给定一个标签 ID 列表,我可以很容易地获得带有一个标签的项目列表 另一个:
# Find the items tagged with one or more of the tags on tag_ids
Item.all(:conditions => ['tags.id in (?)', tag_ids], :joins => :tags)

tag_ids{1,4} ,然后我将所有图片标记为 1、4 或两者。

我现在想知道如何获取标有两者的图片 - 1 4.

我什至无法想象这里需要的 SQL。

最佳答案

您可以通过对结果进行分组并检查计数来解决此问题:

Item.all(
:conditions => ['tags.id IN (?)', tag_ids],
:joins => :tags,
:group => 'items.id',
:having => ['COUNT(*) >= ?', tag_ids.length]
)

关于sql - rails : Get all items tagged x AND y AND z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3046203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com