mysql - 我可以加入没有关联的表吗? ( rails/SQL)

标签 mysql ruby-on-rails

我有这 3 个类(class):

class Factory < ActiveRecord::Base
  has_many :machines
end

class Machine < ActiveRecord::Base
  belongs_to :factory, inverse_of: :machines
  has_many :assembly_jobs, inverse_of: :machines
end

class AssemblyJob < ActiveRecord::Base
  belongs_to :machines, inverse_of: :assembly_jobs
end

架构

Factories
- id

Machines
- factory_id

AssemblyJobs
- machine_id
- start_time
- error_time
- finish_time

我想在factory.rb中编写一个范围,以返回任何具有错误时间的装配作业机器的工厂。这是可能的还是我需要向组装作业添加factory_id列并创建belongs_to关联?

最佳答案

您可以通过在 joins 方法中输入自定义联接查询来联接没有关联的表:

Model.joins("<CONDITIONS FOR JOIN>")

但是,在您的情况下,您应该能够使用以下查询来确定具有组装作业的机器的工厂范围

Factory.joins(machines: :assembly_jobs)

这将创建一个嵌套的 INNER JOIN,其中仅返回具有一台或多台具有一项或多项组装作业的机器的工厂。

关于mysql - 我可以加入没有关联的表吗? ( rails/SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36417314/

相关文章:

mysql - Rails 中的 SQL-IN 操作符多次出现相同的 ID

ruby-on-rails - 未定义的方法 `wikis_path'

ruby-on-rails - aws-cdk:对于 Web 应用程序的文件夹结构有什么好的指南或建议吗?

mysql - 在包含特殊字符的 SQL 查询中使用 LIKE 时出现问题

ruby-on-rails - 在 Rails 中使用 Postgres 枚举类型时,在迁移中指定 CREATE TYPE xyz_setting AS ENUM 会破坏您的 db/schema.rb 文件

javascript - CouchDB 不区分大小写和 OR 选项,就像在 mysql 中一样

mysql - MySQL如何判断用户是否可以登录

ruby-on-rails - Kaminari ajax 分页仅带有上一个和下一个按钮

php - 为什么这个通知(12次): Uninitialized string offset: 0 in app_vsf. php on line 90

mysql - 如何在创建表中使用约束或列级别内的选择