Rails 3:Arel 不存在? [英] Rails 3: Arel for NOT EXISTS?
本文介绍了Rails 3:Arel 不存在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您如何在 Arel 中编写 NOT EXISTS
?我无法将此查询转换为 Arel:
How do you write a NOT EXISTS
in Arel? I'm having trouble translating this query into Arel:
SELECT * FROM deals
WHERE NOT EXISTS (
SELECT 1 FROM reward_deals
WHERE reward_deals.deal_id = deal.id
AND NOT (
reward_deals.awarding_type = 'deal'
AND reward_deals.deal_id = reward_deals.awarding_id
)
)
推荐答案
这就是答案,名字很奇怪,因为我不知道如何为我不知道的域命名.
Here is the answer, with strange names because I don't know how to give names for a domain that is for me unknown.
deals = Deal.arel_table
reward_deals = RewardDeal.arel_table
awarding_condition= reward_deals[:awarding_type].eq('deal')
.and(reward_deals[:deal_id]
.eq(reward_deals[:awarding_id]))
reward_deals_condition= reward_deals[:deal_id].eq(deals[:id])
.and(awarding_condition.not)
Deal.where(RewardDeal.where(reward_deals_condition).exists.not)
这篇关于Rails 3:Arel 不存在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文