[英]Convert raw PostgreSQL into SQLAlchemy ORM query for a Pyramid Application
[英]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
定義表,例如:
table1 = table('table1', column('name', String()) ) table2 = table('table2', column('ip', String()), column('info', String()), column('hostname', String()), )
撰寫查詢,例如:
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)
執行查詢,例如:
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.