sqlalchemy 中如何左外连接?

2024-04-19

我想在 sqlalchemy 中实现左外连接。 sql查询是这样的:

select * from skills left join user__skill on user__skill.skill_id=skills.id and  user__skill.user_id=4

我在 sqlalchemy 中写的是:

skills = db.session.query(Skill, User_Skill.skill_id).\
            outerjoin(User_Skill, User_Skill.skill_id==Skill.id and User_Skill.user_id==4).\
            order_by(Skill.name).all()

但它不会过滤用户并显示所有用户的技能。

我该如何编写这段代码?


EDIT: Use and_ from sqlalchemy加入join状况

from sqlalchemy import and_

skills = db.session.query(Skill, User_Skill.skill_id).\
            outerjoin(User_Skill, and_(User_Skill.skill_id==Skill.id, 
                                       User_Skill.user_id==4)).\
            order_by(Skill.name).all()

旧的错误答案(不同的结果):

Use .filter来限制你的结果。将您的查询更改为:

skills = db.session.query(Skill, User_Skill.skill_id).\
            outerjoin(User_Skill, User_Skill.skill_id==Skill.id).\
            filter(User_Skill.user_id==4).\
            order_by(Skill.name).all()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlalchemy 中如何左外连接? 的相关文章

  • 将 Flask_login 会话与 jinja2 模板一起使用

    我有简单的 jinja2 模板 带有注册 登录链接 我应该在用户登录时隐藏它们 我还使用flask login 模块来处理这个东西 问题是 我应该如何识别用户是否已登录 jinja2 模板 Flask Login 添加了current us
  • Nginx 正在向 uWSGI 发出非常旧的请求?

    我看到一种奇怪的情况 Nginx 或 uwsgi 似乎正在建立一个很长的传入请求队列 并在客户端连接超时后很长时间内尝试处理它们 我想理解并停止这种行为 以下是更多信息 My Setup 我的服务器使用 Nginx 通过 Unix 文件套接
  • 使用 gevent 在应用程序上下文之外工作的 Flask 蓝图

    我正在尝试通过 Flask mail 使用 gevent 在 Flask 中异步发送电子邮件 我正在 在应用程序上下文之外工作 我知道 app app context 但我无法让它与我的设置一起使用 我的应用程序是使用这样的应用程序工厂创建
  • 映射器无法组装任何主键列

    我从 sqlite 表创建了一个临时表 该表是基于各种选择标准的原始表的子集 屏幕截图中有一个示例 我试图一次循环一个表记录 以便更新每个记录中的字段 我有 source table self source engine create en
  • 如何将 Jinja 与 Twisted 一起使用?

    我正在计划使用 Python 与 Twisted Storm 和 Jinja 一起开发一个讨论软件 问题是 Jinja 不是为 Twisted 或异步套接字库而设计的 并且使用 Twisted 提供的性能是我不打算使用 Flask 的原因
  • 如何使用 SQLalchemy 连接三个表并将所有列保留在其中一个表中?

    所以 我有三张表 类定义 engine create engine sqlite test db echo False SQLSession sessionmaker bind engine Base declarative base cl
  • 如何将Python + Flask变量输入到html标签属性中

    顺便说一句 新手 我正在使用 Python Flask 我有一个 Python 变量 我想将其替换为value 我的尝试 value variable 没用
  • 当我在gunicorn上运行Flask应用程序时设置app.wsgi_app = ProxyFix(app.wsgi_app)时会发生什么?

    我使用 Flask 构建了一个基本的 Web 应用程序 并且能够使用其本机 http 服务器从虚拟机运行它 我很快意识到 通过这种设置 请求会被阻塞 我无法对资源发出并发请求 任何新请求都会等到较早的请求完成 并决定尝试使用gunicorn
  • SQLAlchemy 闭包表关系定义

    我最近开始使用 SQL Alchemy 开展一个涉及攀岩区域和路线的项目 区域是分层的 因为单个区域可以包含多个区域 而多个区域又可以包含其他区域 路线直接与单个区域关联 但也与该区域的父区域关联 等等 为了实现这一点 我选择使用Bill
  • 如何在 Flask-SQLAlchemy 中通过 id 删除记录

    I have users我的 MySql 数据库中的表 这张表有id name and age fields 我怎样才能删除一些记录id 现在我使用以下代码 user User query get id db session delete
  • Flask-SocketIO 未使用 Gevent/Gevent-websocket

    我正在使用 Flask 和 Flask SocketIO 构建用于 websocket 通信的 Web 界面 数据 API 我想开始转向使用 Gevent Gevent websocket Gunicorn 以及最终使用 Nginx 进行负
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • 需要帮助在 MS Access 中实施完全外部联接

    我无法让查询在 Access 中正常工作 我需要 dbo cardpurchases 和 dbo vendors 上的完整外部联接 以便所有所有供应商都将出现在查询中 无论是否在该供应商处进行购买 但 Access 不支持完全外部联接 我还
  • Flask SQLAlchemy 与 MyPy - 模型类型错误

    我遇到了以下组合问题flask sqlalchemy and mypy 当我定义一个新的 ORM 对象时 例如 class Foo db Model pass where db是使用创建的数据库SQL炼金术应用于flask app mypy
  • Flask API TypeError:“Response”类型的对象不可 JSON 序列化

    我在使用 Python Flask Restful API 时遇到问题 并且数据发送到 Elasticsearch 当我使用 Postman 发布新数据时 问题是 类型错误 响应 类型的对象不可 JSON 序列化 你能帮助我吗 Model
  • 如何在sqlalchemy中编写自己的方言来适应HTTP API?

    我正在尝试向 Superset 数据探索平台 添加一个特殊的数据源 该数据库仅支持HTTP API 返回json格式的数据 例如 gt http localhost api sql query q select from table lt
  • 如何测试send_file烧瓶

    我有一个小型烧瓶应用程序 它需要上传一些图像并将它们转换为多页 tiff 没什么特别的 但是如何测试多个文件的上传和文件下载呢 我的测试客户端 class RestTestCase unittest TestCase def setUp s
  • Jinja:空主后备示例如何工作?

    来自 jinja 官方网站的示例代码 if not standalone extends master html endif block body p This is the page body p endblock 据我了解 当独立为真时
  • Flask 未激活调试模式

    我正在开始使用 Flask 我正在尝试遵循一些教程 但我无法在调试模式下运行 Flask 应用程序 我尝试了我发现的最简单的代码 from flask import Flask app Flask name app debug True I
  • Flask-Mail - 基于 Flask-Cookiecutter 异步发送电子邮件

    我的烧瓶项目基于烧瓶饼干切割机 https github com sloria cookiecutter flask我需要异步发送电子邮件 发送电子邮件的功能由以下配置米格尔的教程 https blog miguelgrinberg com

随机推荐