这是我想要执行的以下 sql 查询,并且在命令行上完美运行:
select * from table1 join table2 using (col1, col2)
我无法弄清楚如何使用 SQLAlchemy 执行此操作,任何帮助将不胜感激。
表之间没有外键。表行只能通过多列中匹配的值进行配对。
谢谢你!
考虑 Entity1 映射到 table1,Entity2 映射到 table2:
rows = session
.query(Entity1, Entity2)
.join(Entity2, (Entity1.col1==Entity2.col1) & (Entity1.col2==Entity2.col2))
.all()
rows
将是一个元组列表,其中rows[][0]
is Entity1
and rows[][1]
is Entity2
。
您可以使用.join()
然后用第二个参数指定连接条件。如果省略连接条件,则.query()
方法单独生成表 1 和表 2 之间的交叉连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)