首页 > 解决方案 > 将 SQL 查询转换为 SQLAlchemy

问题描述

我想将我的查询转换为 SQLalchemy:

SELECT sel.ID,sel.URL,GROUP_CONCAT(sel.label_values) 
     FROM
        (
         SELECT table1.id as ID, table1.url as URL,CONCAT_WS(':',label 
          ,value) as label_values
         FROM table1 LEFT OUTER JOIN table2 ON table1.id = 
              table2.media_id
         WHERE table1.type = "image" AND table1.id >= 0
         ORDER BY table1.id
         ) AS sel
     GROUP BY sel.ID

我试过这样的事情:

label_and_values_column = func.CONCAT_WS(' : ',table2.c.label, 
                 table2.c.value).label(name='label_and_values_column')

outer_join_select = select([table1, label_and_values_column])\
                                       .order_by(table1.c.id)\
                       .select_from(table1.outerjoin(table2))\
                             .label(name='outer_join_select')


all_ = func.group_concat(' : ',outer_join_select.id)\
         .label(name='all_label_and_values_per_media_id')

最后一行给了我

Caught exception: Neither 'Label' object nor 'Comparator' object has an attribute 'id'.

我正在使用带有事务的数据库engine.begin()连接db_conn_transaction

meta = sqlalchemy.MetaData(db_conn_transaction)

我想构建select_statment然后使用select_statment.execute().fetchall()

.subquery()因为没有所以不能用session.query()...

欢迎在 SQLalchemy 中转换我的查询的任何帮助!

标签: mysqlsqlalchemy

解决方案


推荐阅读