簡體   English   中英

將PostgreSQL轉換為SqlAlchemy查詢

[英]Convert PostgreSQL to SqlAlchemy query

我在PostgreSQL中有一個簡單的查詢,需要將其轉換為SQLAlchemy。

SELECT table1.name,table2.ip,table2.info 
FROM table1 LEFT OUTER JOIN table2 
ON(table1.name=table2.hostname) 
GROUP BY table1.name;

我嘗試使用此方法沒有成功:

session.query(table1.name
              ,table2.ip
              ,table2.info).distinct().join(table2).group_by(table1.name)

有人可以幫我嗎?

在此先感謝Ishwar

使用Expression API的方法如下

http://docs.sqlalchemy.org/en/latest/core/expression_api.html

  1. 定義表,例如:

     table1 = table('table1', column('name', String()) ) table2 = table('table2', column('ip', String()), column('info', String()), column('hostname', String()), ) 
  2. 撰寫查詢,例如:

     my_query = select([table1.c.name, table2.c.ip, table2.c.info] ).select_from( table1.outerjoin(table2, table1.c.name == table2.c.hostname) ).group_by(table1.c.name) 
  3. 執行查詢,例如:

     db.execute(my_query) 

從您的答案尚不清楚是什么問題,但是我對此查詢的射擊是:

session.query(table1.name
             ,table2.ip
             ,table2.info)\
       .outerjoin(table2)\
       .group_by(table1.name)

我想出了答案。 我實際上在查詢中缺少ON條件:

session.query(table1.name,table2.ip,table2.info).distinct()。outerjoin(table2,table1.name = table2.hostname).group_by(table1.name)

感謝幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM