SQLAlchemy:union_all 上的列名称

2024-01-10

这是mssql代码片段

(Select column_name_1 from table_name_1  with(nolock)  Where column_name_2='Y'
UNION ALL
Select column_name_1 from table_name_2  with(nolock)  Where column_name_2='Y'
)ae ON ae.column_name_1 = '1234'

我想在 sqlalchemy 中实现这一点,这就是我将如何实现它

q1 = session.query(table_name_1.column_name_1).filter(table_name_1.column_name_2=='Y')
q2 = session.query(table_name_2.column_name_1).filter(table_name_2.column_name_2=='Y')

q3 = q1.union_all(q2)

but

我如何从 q3 获取 column_name_1 ?我该怎么做?

q3.column_name_1 == '1234'

经历了sqlalchemy 文档 http://docs.sqlalchemy.org/en/rel_0_9/

发现类似的问题被问到here https://stackoverflow.com/questions/21777730/sort-by-a-column-in-a-union-query-in-sqlalchemy-sqlite


下面的代码应该可以做到。几点注意事项:

  • 指定一个label对于一列,否则sqlalchemy会创造自己独特的名字
  • use sqlalchemy.sql.expression.union_all http://docs.sqlalchemy.org/en/rel_0_9/core/selectable.html#sqlalchemy.sql.expression.union_all,这将产生Selectable而不是一个Query

Code:

q1 = session.query(table_name_1.column_name_1.label("column_name_1")).filter(table_name_1.column_name_2=='Y')
q2 = session.query(table_name_2.column_name_1.label("column_name_1")).filter(table_name_2.column_name_2=='Y')

q3 = union_all(q1, q2)
q3 = select([q3.c.column_name_1]).where(q3.c.column_name_1 == '1234')

根据您的示例,您实际上可以将过滤器直接添加到原始查询中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy:union_all 上的列名称 的相关文章

  • 如何取消选择单选按钮 tkinter

    我看过几个在线教程 它们似乎都不能正常工作 我需要在单击清除按钮后取消选择单选按钮 deselect 方法不执行任何操作 清除文本和输入框工作正常 请协助 谢谢你 from tkinter import class Example Fram
  • 关于“评估是邪恶的”和“同意成年人”[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我看到很多人说 评估是邪恶的 危险的 不安全的 https stackoverflow com questions 1832940 is usi
  • 在 Pandas 中根据多个条件过滤 DataFrame

    对于我的班级 我需要找到虹膜数据集中介于 4 5 和 6 之间的萼片长度 确切的规范是 选择萼片长度大于 4 5 但小于 6 的行 给定的代码 答案应采用这种形式 是 subset data data petal width cm gt 2
  • Cython memoryviews:使用数组参数包装 c 函数以传递 numpy 数组

    我正在尝试使用 Cython 用数组参数包装 c 函数 quick sort 所以我可以将 numpy 数组传递给它 我已经在文档 SO 和网络中搜索了一个可行的 最小的示例 但没有找到它 我已经尝试了几种可能性 但没有任何进展 所以请帮我
  • 如何使用 jython 将参数传递给 java 中的 python 脚本

    我正在尝试使用 jython 在 java 中执行我的 python 脚本 重要的是我需要使用 jython 将命令行参数传递给我的脚本 例如myscript py arg1 arg2 arg3 这里有一个类似的问题 在 Java 中将参数
  • 2 列 pandas 上的地图

    我有一个数据框 如下所示 Col1 Col2 0 A PY 1 B PA 2 C PB 3 B PB 以及这个系列 Value Col1 Col2 A PY 20 B PB 30 我想做一个映射 如果该系列有一个索引 仅前 Col1 那么它
  • 是否可以模拟 Python 3.6 中的内置 len() 函数?

    是否可以模拟内置len Python 3 6 中的函数 我有一个类定义了一个简单的方法 该方法依赖于len 函数如下 class MyLenFunc object def is longer than three characters se
  • 具有多处理功能的 Python 代码无法在 Windows 上运行

    以下简单的绝对初学者代码在 Ubuntu 14 04 Python 2 7 6 和 Cygwin Python 2 7 8 上运行 100 但在 Windows 64 位 Python 2 7 8 上挂起 我使用另一个片段观察到了同样的情况
  • KFold 和 ShuffleSplit CV 有什么区别?

    看起来 KFold 每次迭代对象时都会生成相同的值 而 Shuffle Split 每次都会生成不同的索引 它是否正确 如果是这样 其中一个相对于另一个有什么用处 cv cross validation KFold 10 n folds 2
  • Python 在 chroot 中运行时出现错误

    我尝试在 chroot 中运行一些 Python 程序 但出现以下错误 Could not find platform independent libraries
  • 子进程改变目录

    我想在子目录 超级目录中执行脚本 我需要首先进入该子目录 超级目录 我无法得到subprocess进入我的子目录 tducin localhost Projekty tests ve python Python 2 7 4 default
  • Python 遍历目录树的方法是什么?

    我觉得分配文件和文件夹并执行 item 部分有点黑客 有什么建议么 我正在使用Python 3 2 from os import from os path import def dir contents path contents list
  • 如何从谷歌云存储桶读取音频文件并在datalab笔记本中使用ipd播放

    我想在数据实验室笔记本中播放我从谷歌云存储桶中读取的声音文件 这个怎么做 import numpy as np import IPython display as ipd import librosa import soundfile as
  • html 解析器 python

    我正在尝试解析一个网站 我正在使用 HTMLParser 模块 问题是我想解析第一个 a href 评论后 但我真的不知道该怎么做 所以我在文档中发现有一个函数叫做handle comment 但我还没有找到如何正确使用它 我有以下内容 i
  • 如何在 ReportLab 段落中插入回车符?

    有没有办法在 ReportLab 的段落中插入回车符 我试图将 n 连接到我的段落字符串 但这不起作用 Title Paragraph Title n Page myStyle 我想要这样做 因为我将名称放入单元格中 并且想要控制单元格中的
  • 如何找到列表S的所有分区为k个子集(可以为空)?

    我有一个唯一元素列表 比方说 1 2 我想将其拆分为 k 2 个子列表 现在我想要所有可能的子列表 1 2 1 2 2 1 1 2 我想分成 1 1 2 我怎样才能用 Python 3 做到这一点 更新 我的目标是获取 N 个唯一数字列表的
  • 为什么我的scoped_session 引发 AttributeError: 'Session' object has no attribute 'remove'

    我正在尝试建立一个系统 将数据库操作优雅地推迟到单独的线程 以避免在 Twisted 回调期间发生阻塞 到目前为止 这是我的方法 from contextlib import contextmanager from sqlalchemy i
  • Python 正则表达式部分匹配或“hitEnd”

    我正在编写一个扫描器 因此我将任意字符串与正则表达式规则列表进行匹配 如果我可以模拟 Java hitEnd 功能 不仅知道正则表达式何时不匹配 还知道何时匹配 这将非常有用 can t匹配 当正则表达式匹配器在决定拒绝输入之前到达输入末尾
  • Django 的 URL 覆盖率测试为 0%,为什么?

    使用姜戈鼻子 我对 URL 进行了测试 但 URL 覆盖率仍然为 0 为什么 python manage py 测试配置文件 这是我的报道 Name Stmts Miss Cover Missing profiles 0 0 100 pro
  • 如何使用循环将十进制转换为二进制?

    我想编写一个程序 将十进制数 0 到 9 转换为二进制数 我可以编写如何使用重复除法将十进制数转换为二进制数的代码 但是 我在创建一个以二进制格式打印十进制数字 0 到 9 的循环时遇到了麻烦 这是我的代码 number 0 remaind

随机推荐