鉴于通过Select *
into MyVar
from Tab1
Where <Somecondition> limit 14;
If Num_of_Records < 14 Then
Append
Into MyVar
Select *
from Tab1
Where <Relaxedcondition>
limit 14 - Num_of_Records;
End If;
return Myvar
加入的Sequel::Model
商品和商店,我希望根据商家信息的属性找到Listings
及其关联的Items
。
Stores
我可以使用DB.create_table? :items
primary_key :id
end
DB.create_table? :stores
primary_key :id
end
DB.create_table? :listings
foreign_key :store_id
foreign_key :item_id
TrueClass :active, null: true
String :name
end
class Item < Sequel::Model
many_to_many :stores, join_table: :listings
end
class Store < Sequel::Model
many_to_many :items, join_table: :listings
end
class Listing < Sequel::Model
end
和.association_join
条款来执行此操作(如下所示),但是(A)我不确定这是否正确(B)它使用来自两个连接表的道具产生结果,并且(C)在结果.where
上调用#stores
会导致另一个查询。
Item
我的最终目标是Item.association_join(:stores).where(active: true, name: 'Sears').eager(:stores).first()
的数据集,它会急切地加载Item
。
最好的方法是什么?谢谢!
答案 0 :(得分:0)
我发现我能做到的另一种方式是:
Listing.eager(item: :stores).where(active: true).all
这导致前面三个查询,但是我感兴趣的整个关联链被加载。然后我从列表数组中收集项目。
也不确定这是不是正确的方法。