Rails 3: Arel for NOT EXISTS?

后端 未结 1 1891
抹茶落季
抹茶落季 2020-12-16 21:26

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         


        
相关标签:
1条回答
  • 2020-12-16 21:42

    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)
    
    0 讨论(0)
提交回复
热议问题