我有以下代码:
@staticmethod
def get_all_locations_for_event(value):
sql = text('SELECT * \
FROM public.location_event \
INNER JOIN public.location \
ON public.location_event.location_id = public.location.id \
WHERE event_id = :x;')
result = db.engine.execute(sql, x = value)
for r in result:
dict_ = dict(r)
return dict_
它仅返回第一行。但是,我希望它返回所有结果。我是SQL-Alchemy的新手,如果我缺少什么,请原谅我。我已经在网上搜索了过去几个小时,到目前为止,我只遇到了返回单行而不是多行的代码示例。
我知道for循环存在问题,因为它没有迭代足够的时间来获取其余数据,但是我不确定该修复程序将看到一个对象。
P.S。如果可以通过ORM方法完成此操作,那么我也非常高兴。我决定使用SQL,因为无法获得ORM模型来选择正确的数据。
答案 0 :(得分:0)
我猜您可以做类似的事情(未经测试,取决于您的模型):
Location.join(LocationEvent).filter_by(event_id=**value**).all()
加入需要相关的外键