正如@letitbee所说,将主键分配给表并正确定义关系以允许正确的ORM查询是最佳实践。有人说。。。

如果您有兴趣按照以下行编写查询:SELECT

user.email,

user.name,

document.name,

documents_permissions.readAllowed,

documents_permissions.writeAllowed

FROM

user, document, documents_permissions

WHERE

user.email = "user@email.com";

那么你应该去做一些事情,比如:session.query(

User,

Document,

DocumentsPermissions

).filter(

User.email == Document.author

).filter(

Document.name == DocumentsPermissions.document

).filter(

User.email == "user@email.com"

).all()

如果相反,您希望执行以下操作:SELECT 'all the columns'

FROM user

JOIN document ON document.author_id = user.id AND document.author == User.email

JOIN document_permissions ON document_permissions.document_id = document.id AND document_permissions.document = document.name

那么你应该按照以下思路来做:session.query(

User

).join(

Document

).join(

DocumentsPermissions

).filter(

User.email == "user@email.com"

).all()

关于那件事的一个说明。。。query.join(Address, User.id==Address.user_id) # explicit condition

query.join(User.addresses) # specify relationship from left to right

query.join(Address, User.addresses) # same, with explicit target

query.join('addresses') # same, using a string

有关详细信息,请访问docs。

python怎样实现多表连接查询_sqlalchemy:如何通过一个查询连接多个表?相关推荐

  1. mysql select后面能跟多少个表_mysql查询语句中,FROM后面可以跟具体的表名,也可以跟一个查询结果...

    /* FROM后面可以跟具体的表名,也可以跟一个查 询结果(此查询结果其实就是相当于一张表, 注意:必须要给它取一个别名) */ #给查询结果取别名 SELECT * FROM book, (SELE ...

  2. educoder数据结构与算法 线性表 第2关:实现一个链接存储的线性表

    任务描述 本关任务:完成一个链接存储的线性表的小程序. 相关知识 线性表的存储也可以采用链接存储方式来实现.链接存储方式包括单链表.双链表和循环链表等形式. 下面描述了一种基于单链表的线性表实现方案: ...

  3. vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Private Sub Command1_Click() Dim conn As New ADODB.Connection Dim rs As New A ...

  4. Navicat连接SqlServer 提示远程主机关闭一个现有连接

    解决方法:https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-s ...

  5. mysql 单表子查询语句_MySQL基本SQL查询语句:多表查询和子查询示例

    一.简单查询:基本语法: 代码如下 SELECT * FROM tb_name; 查询全部 代码如下 SELECT field1,field2 FROM tb_name; 投影 代码如下 SELECT ...

  6. 查询整个数据库中某个特定值所在的表和字段的方法

    原文 http://www.cnblogs.com/china-ye/archive/2013/04/16/3023658.html 当数据库做的太庞大的时候,难免会出现忘记哪个值会存入哪个表的情况, ...

  7. ezdml 支付mysql 吗_EZDML数据库表结构设计器_设计sql、oracle、mysql数据库表结构 V2.39 免费版...

    很多程序员或者网站站长在设计网站数据库的时候都要进行表结构设计,如果您不想操作原始的数据库工具之想简单设计一下数据库表结构,那么你不妨试试这款EZDML数据库表结构设计器,可以快速设计sql.orac ...

  8. mysql查询比对提速_MySQL查询性能优化

    关注我,更多精彩文章第一时间推送给你 1.为什么查询速度会慢? ​首先对一个查询的生命周期简化分析,大致可以按照顺序分为:从客户端.到服务器.然后在服务器进行解析.生成执行计划.执行.并返回结果给客户 ...

  9. 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 作者 | 松若章 来源 | https://zhuanlan.zhihu.com/p/6142 ...

  10. 相关子查询 与非相关子查询

    1:标量子查询(相对于多值子查询): 只有标量子查询返回的是单个记录或者不返回,就是有效的子查询. Ex1:select OrderId From Orders where EmployeeId= ( ...

最新文章

  1. R语言:如何快速生成许多差异明显的颜色?
  2. 性能测试第三章-性能测试核心原理
  3. saltstack/salt的state.sls的使用
  4. trunc 文字与格式与字符串不符_EXCEL字符串中间数字提取进阶
  5. bootstrap下拉列表与输入框组结合的样式调整
  6. Winform开发中另一种样式的OutLookBar工具条
  7. MS_DOS头部 IMAGE_DOS_HEADER
  8. 漫步线性代数二十——快速傅里叶变换(下)
  9. 经验 | 深度学习中从基础综述、论文笔记到工程经验、训练技巧
  10. 10许可证即将到期_食品经营许可证延续
  11. AI 工程师的崩溃是在哪一瞬间
  12. 得到页面中的所有链接函数
  13. 关于 Ubuntu Server 18.04 的网络(dchp/dns/route/PPPoE)
  14. SSL证书配置注意事项
  15. 0基础小白,如何入门数学建模?
  16. Linux监控程序运行/停止+邮件通知
  17. 【游戏】GBA经典游戏《逆转裁判》1、2、3合集发布
  18. < Linux > 进程间通信
  19. java jtextarea清空_Java:JTextArea类
  20. 龙应台--有些事,只能一个人做。

热门文章

  1. Android弧形广告图,简单封装弧形广告轮播图(ViewPager+贝塞尔曲线)
  2. gamegamegamegamegame
  3. 《成功的项目管理》案例
  4. 如何做好建设工程项目管理?
  5. Scala中的ArrayBuffer(创建可变数组)
  6. DMVPN中心站点动态域名解析
  7. CTF pwn题之格式化字符串漏洞详解
  8. 关于pycharm怎么设置中文、背景图、快捷键的一些小Tips
  9. Autoware实现激光雷达与摄像机组合标定
  10. 什么是webjars