我需要连接到旧数据库并从使用实体属性值模型存储联系人信息的表中提取数据子集。该表如下所示:
订阅者字段 ID 数据 1 2 杰克 1 3 麻雀 2 2 丹 2 3 史密斯
wherefieldid
是表的外键,该fields
表列出了给定客户可以拥有的自定义字段(例如名字、姓氏、电话)。所涉及的 SQL 相当繁琐,因为我必须为我想要返回的每个字段(目前我需要 6 个字段)将表加入到自身,以及加入基于当前用户的主联系人列表。
SQL 是这样的:
select t0.data as FirstName, t1.data as LastName, t2.data as SmsOnly
from subscribers_data t0 inner join subscribers_data t1
on t0.subscriberid = t1.subscriberid
inner join subscribers_data t2
on t2.subscriberid = t1.subscriberid
inner join list_subscribers ls
on (t0.subscriberid = ls.subscriberid and t1.subscriberid = ls.subscriberid)
inner join lists l
on ls.listid = l.listid
where l.name = 'My Contacts'
and t0.fieldid = 2
and t1.fieldid = 3;
我应该如何使用我的 RoR 应用程序来处理这个问题?我想把它抽象出来,并且仍然能够使用正常的“点符号”来提取属性。幸运的是,在可预见的未来,数据是只读的。