【发布时间】:2021-05-19 23:18:45
【问题描述】:
我有三个具有以下结构的表:
CREATE TABLE `crawled_data` (
`id` int NOT NULL,
`url` longtext,
***OMMITTED***
PRIMARY KEY (`id`)
);
CREATE TABLE `ingredient_frequency` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`url_id` int DEFAULT NULL,
`url` text,
***OMMITTED***
PRIMARY KEY (`id`)
)
CREATE TABLE `url_metadata` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`url` longtext,
***OMMITTED***
PRIMARY KEY (`id`)
);
我定义了以下活动记录结构:
class Crawled_Data < ActiveRecord::Base
self.table_name = "crawled_data"
has_many :url_metadatas
end
class Ingredient_Frequency < ActiveRecord::Base
self.table_name = "ingredient_frequency"
belongs_to :url_metadata
end
class Url_Metadata < ActiveRecord::Base
self.table_name = "url_metadata"
has_many :ingredient_frequencies
belongs_to :crawled_data
end
我应该如何通过匹配 url 列(不是两个表中的主键)继续加入 crawled_data 和 url_metadata?
我查看了以下线程但没有运气,因为答案并没有真正提到如何引用当前表的列(而只是谈论引用 foreign_key)
【问题讨论】:
-
在 Rails 中执行原始 SQL 可能会有所帮助。详情见this SO post
标签: mysql ruby-on-rails mariadb rails-activerecord