我在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
答案 0 :(得分:1)
以下是使用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)
答案 1 :(得分:0)
从你的回答中不清楚问题是什么,但我在这个问题上的搜索是:
session.query(table1.name
,table2.ip
,table2.info)\
.outerjoin(table2)\
.group_by(table1.name)
答案 2 :(得分:0)
我想出了答案。我实际上错过了查询中的ON条件:
session.query(table1.name ,table2.ip ,table2.info ).distinct()。outerjoin(table2,table1.name = table2.hostname ).group_by(table1.name)
感谢您的帮助!