Select语句仅返回结果的第一行

时间:2019-03-12 05:00:09

标签: python sqlalchemy flask-sqlalchemy

我有以下代码:

@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模型来选择正确的数据。

1 个答案:

答案 0 :(得分:0)

我猜您可以做类似的事情(未经测试,取决于您的模型):

Location.join(LocationEvent).filter_by(event_id=**value**).all()

加入需要相关的外键