如何在SQLAlchemy中联接两个查询?

乔舒兰

在此示例中,我使用的是示例MySQL classicmodels数据库

所以我有两个查询:

products = session.query(Products)
orderdetails = session.query(OrderDetails)

假设此后我无法再对数据库进行任何查询,并且从现在开始只能连接这两个查询。

我想对它们进行外部联接,以便能够执行以下操作:

for orderdetail, product in query:
    print product.productName, product.productCode, orderdetails.quantityOrdered

但是,每当我对此进行外部联接时,似乎只能得到左联接。

query = orderdetails.outerjoin(Products)

这样的代码仅产生orderdetails列:

for q in query:
    # Only gives orderdetails columns
    print q

并做这样的事情:

for orderdetails, product in query:
    print orderdetails, product

给我一个错误:TypeError: 'OrderDetails' object is not iterable

我究竟做错了什么?我也只想要“产品”表中的列。

编辑:

感谢@univerio的回答,我找到了解决方案。我的真正目标是对两个现有查询进行联接,然后对它们进行SUMCOUNT操作。

SQLAlchemy基本上只是将查询对象转换为SQL语句。with_entities函数只是将SELECT表达式更改为您传递给它的任何内容。这是我更新的解决方案,其中包括解包和读取联接:

for productCode, numOrders, quantityOrdered in orderdetails.with_entities(
        OrderDetails.productCode, 
        func.count(OrderDetails.productCode),
        func.sum(OrderDetails.quantityOrdered)).group_by(OrderDetails.productCode):
    print productCode, numOrders, quantityOrdered
宇宙

您可以使用覆盖实体列表with_entities()

orderdetails.outerjoin(Products).with_entities(OrderDetails, Products)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQLAlchemy中联接两个查询?

来自分类Dev

在MySQL中联接两个查询

来自分类Dev

如何在MySQL中联接这两个表

来自分类Dev

如何在Hbase中联接两个表

来自分类Dev

如何在laravel中联接两个表?

来自分类Dev

如何在Oracle中联接两个表

来自分类Dev

如何在Shell脚本中联接两个文件

来自分类Dev

如何在MySQL中联接这两个表

来自分类Dev

如何在sqlalchemy中联接两个ORM表,但又将两列都取回来?

来自分类Dev

如何从3个表中联接两个SQL查询?

来自分类Dev

在DQL查询中联接两个实体

来自分类Dev

Django:在单个查询中联接两个表

来自分类Dev

在DQL查询中联接两个实体

来自分类Dev

如何在HQL中联接两个表以获取一个域类的结果

来自分类Dev

如何在ServiceStack OrmLite中联接2个表并选择两个类?

来自分类Dev

如何在PostgreSQL中联接两个表来更新一个

来自分类Dev

如何在ServiceStack OrmLite中联接2个表并选择两个类?

来自分类Dev

如何在特定于任何列的HTSQL中联接两个表

来自分类Dev

如何在Lua中联接两个表(带有子表)

来自分类Dev

如何在Django中联接两个表并在模板中使用结果?

来自分类Dev

如何在Blob列上的oracle中联接两个表?

来自分类Dev

如何在MySql中联接两个表时创建视图

来自分类Dev

如何在linq中联接两个表而不获取匿名类型结果集

来自分类Dev

如何在Codeigneitor的get_where子句中联接两个表数据

来自分类Dev

如何在IBM AIX ksh中联接两个命令的结果

来自分类Dev

如何在SQL中联接两个表以从一个表中获取名称并在查询中显示它们?

来自分类Dev

在一个联接中联接两个表

来自分类Dev

如何在HQL中联接两个表,在数据库中没有关系

来自分类Dev

如何子查询两个联接?

Related 相关文章

  1. 1

    如何在SQLAlchemy中联接两个查询?

  2. 2

    在MySQL中联接两个查询

  3. 3

    如何在MySQL中联接这两个表

  4. 4

    如何在Hbase中联接两个表

  5. 5

    如何在laravel中联接两个表?

  6. 6

    如何在Oracle中联接两个表

  7. 7

    如何在Shell脚本中联接两个文件

  8. 8

    如何在MySQL中联接这两个表

  9. 9

    如何在sqlalchemy中联接两个ORM表,但又将两列都取回来?

  10. 10

    如何从3个表中联接两个SQL查询?

  11. 11

    在DQL查询中联接两个实体

  12. 12

    Django:在单个查询中联接两个表

  13. 13

    在DQL查询中联接两个实体

  14. 14

    如何在HQL中联接两个表以获取一个域类的结果

  15. 15

    如何在ServiceStack OrmLite中联接2个表并选择两个类?

  16. 16

    如何在PostgreSQL中联接两个表来更新一个

  17. 17

    如何在ServiceStack OrmLite中联接2个表并选择两个类?

  18. 18

    如何在特定于任何列的HTSQL中联接两个表

  19. 19

    如何在Lua中联接两个表(带有子表)

  20. 20

    如何在Django中联接两个表并在模板中使用结果?

  21. 21

    如何在Blob列上的oracle中联接两个表?

  22. 22

    如何在MySql中联接两个表时创建视图

  23. 23

    如何在linq中联接两个表而不获取匿名类型结果集

  24. 24

    如何在Codeigneitor的get_where子句中联接两个表数据

  25. 25

    如何在IBM AIX ksh中联接两个命令的结果

  26. 26

    如何在SQL中联接两个表以从一个表中获取名称并在查询中显示它们?

  27. 27

    在一个联接中联接两个表

  28. 28

    如何在HQL中联接两个表,在数据库中没有关系

  29. 29

    如何子查询两个联接?

热门标签

归档