【发布时间】:2018-11-13 17:48:23
【问题描述】:
我有一个返回 100,000 多条记录的现有查询。
dev_results = records.joins("INNER JOIN devices ON (devices.id = snapshots.type_id)")
.joins("INNER JOIN assets ON (devices.asset_id = assets.id)")
.joins("LEFT JOIN systems ON (assets.system_id = systems.id)")
.pluck("devices.hostname, devices.ipaddress, systems.fismaid, assets.is_expired")
Device 模型有一个作用域:
scope :dhcp, -> {
joins("INNER JOIN dhcp_cidrs ON (devices.ipaddress <<= dhcp_cidrs.cidr)").where("devices.id NOT IN (?)", Device.reserved.select("devices.id"))
}
如果 devices.id 在 dhcp_ids 中,我如何使用 Device.dhcp 作为子查询来计算名为“is_dhcp”的新列 = true(否则,is_dhcp = false)
【问题讨论】:
-
您使用的是哪个数据库?
-
我正在使用 PostgresQL
标签: sql ruby-on-rails postgresql activerecord ruby-on-rails-5.2