使用 Arel 比较 2 table 的字段
Comparing fields of 2 table using Arel
假设我有 2 table 加入,table A 和 table B。
我想比较这些 table 中的 2 个字段
table_A.project(Arel.star).join(table_B).where(table_A[:field_1].eq(table_B[:field_1]))
要进行连接然后比较不同表中的字段,最好使用格式 tablename.columname
。所以,
table_A.project(Arel.star).join(table_B).where("table_a.field1 = table_b.field2")
您可以使用标准比较运算符,例如 <=, <, >, >= && <>
(<> 表示 sql 中的 "not equal to")
编辑:请注意,我不知道 "table_A.project(Arel.star)" 产生了什么,这很神秘,所以据我所知这可能会导致错误。
假设我有 2 table 加入,table A 和 table B。
我想比较这些 table 中的 2 个字段
table_A.project(Arel.star).join(table_B).where(table_A[:field_1].eq(table_B[:field_1]))
要进行连接然后比较不同表中的字段,最好使用格式 tablename.columname
。所以,
table_A.project(Arel.star).join(table_B).where("table_a.field1 = table_b.field2")
您可以使用标准比较运算符,例如 <=, <, >, >= && <>
(<> 表示 sql 中的 "not equal to")
编辑:请注意,我不知道 "table_A.project(Arel.star)" 产生了什么,这很神秘,所以据我所知这可能会导致错误。