使用 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)" 产生了什么,这很神秘,所以据我所知这可能会导致错误。