Flask SqlAlchemy Postgres 场景下如何使用右连接(Right Join)

2023-05-16

在Sqlalchemy中只有左连接,而没有设计右连接。虽然说左右连接可以相互转换,但是有些特定的场景下还是没有办法交换位置。
所以我们选择了替代方案,使用SqlAlchemy的全连接( FULL JOIN/ FULL OUTER JOIN) 方式

model.py

from utils.sqlalchemy import db
class Book(db.Model):
	id = db.Column(UUID(as_uuid=True), default=uuid.uuid4, primary_key=True)
	name = db.Column(db.String(20), default="")
	author_id = db.Column(UUID(as_uuid=True, db.ForiegnKey('author.id'))

class Author(db.Model):
	id = db.Column(UUID(as_uuid=True), default=uuid.uuid4, primary_key=True)
	name = db.Column(db.String(20), default="")

### dao.py
from app.model import Book,Author
from utils.sqlalchemy import db
def get_books():
	db.session.query(Book)\
	.join(Author, Author.id == Book.author_id, full=True)

这时候,无论Author有没有对应的Book,都会查询出来,并对不存在的值赋None

虽然全连接有时能替代右连接使用,但仍然有些场景无法覆盖,我会继续研究一下其他的思路。

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

Flask SqlAlchemy Postgres 场景下如何使用右连接(Right Join) 的相关文章

  • Ubuntu18.04解决gnome-tweak-tool安装后shell主题提示user-theme extension没有启用的问题

    换用Ubuntu18之后 xff0c 桌面又回到了gnome xff0c 因此找到了gnome tweak tool对桌面进行美化 1 安装gnome tweak tool sudo apt get install gnome tweak
  • 多生产者和多消费者问题

    题目描述 桌子上有一个盘子 xff0c 每次只能向其中放入一个水果 爸爸专门向盘子里面放苹果 xff0c 妈妈专门向盘子里面放橘子 xff1b 只有盘子为空时 xff0c 爸爸或妈妈才可以向其中放入水果 xff1b 仅当盘子里有自己需要的水
  • ssh远程连接服务器常用命令

    命令行下 xff0c 使用ssh 远程登录服务器 ssh 39 用户名 39 64 39 IP地址 39 不用加 39 号 xff0c 这里是为了作区分 39 用户名 39 64 39 IP地址 39 39 s password xxx 项
  • 记录在安卓webview上,gif,apng,pixi.js,lottie-web动画导致闪屏问题

    随着公司项目对动画要求越来越高 xff0c 从由美术提供简单的gif 或者css js开发简单动画变成了使用渲染引擎pixi js使用序列帧动画 xff0c 或者使用龙骨 xff0c spine等更加复杂炫酷的动画 但是发现屏幕在播放动画的
  • 黑苹果_万能OpenCore_0.8.4_EFI

    对于喜欢折腾黑苹果的人来说 xff0c 安装Mac系统就是家常便饭 xff0c 其中最重要的就是EFI的配置 xff0c 配置出一个适合自己电脑的EFI很重要 xff0c 今天发布这篇文章就是为了提供给新加入的伙伴们 xff0c 让更多的伙
  • 黑苹果_OpenCore_0.8.4各项功能精解

    黑苹果已经延续有些年了 xff0c 引导也更新换代过好几次 xff0c 安装黑苹果的第一个条件就是需要拥有一个支持引导苹果系统的EFI xff0c 否则 xff0c 连苹果皮都看不到 xff0c 虽然网上可以直接下载EFI xff0c 但是
  • Github域名解析连接慢问题

    Github域名解析连接慢问题 1 Github访问慢问题2 Github连接解决方案2 1 使用 Gitee 的镜像仓库2 2 配置本地的 hosts 文件 3 DNS域名解析分析3 1 根域名服务器3 1 顶级域名服务器3 1 域名解析
  • C++判断素数(求素数)

    素数又称质数 所谓素数是指除了 1 和它本身以外 xff0c 不能被任何整数整除的数 xff0c 例如17就是素数 xff0c 因为它不能被 2 16 的任一整数整除 思路1 xff1a 因此判断一个整数m是否是素数 xff0c 只需把 m
  • Directx工具修复工具,专注修复C++动态链接DLL文件

    问题 xff1a 方法一 xff1a 可以直接去360管家中搜索DirectX xff0c 然后下载 xff0c 进行修复 方法二 xff1a 如下 xff1a DirectX修复工具最新版 xff1a DirectX Repair V3
  • shell脚本实现在任意虚拟机上 一键重启/关闭 多台虚拟机

    shell脚本实现在任意虚拟机上 一键重启 关闭 多台虚拟机 span class token operator span span class token operator span bin span class token operat
  • ChatGPT体验地址,超多功能,附公众号源码

    GPT 说明效果演示地址体验公众号源码 说明 ChatGPT是一种基于深度学习的自然语言处理 xff08 NLP xff09 技术 xff0c 它可以实现自然的文字对话 ChatGPT是基于预训练的语言模型 xff0c 使用大量的数据和计算
  • Android Native内存泄漏案例

    文章目录 背景现状malloc debugLeakTracer综合评估功能性能稳定性治理实践 案例 使用Raphael 定位内存泄漏 项目中遇到一个内存泄漏的情形 xff1a usb camera预览时出现了内存泄漏 xff0c 但内存泄漏
  • 【The 2017 BAPC】C题-Collatz Conjecture ---- GCD+优化去重

    题意 给你一个大小为n的序列 xff0c 让你求里面所有子串的GCD xff0c 求里面最多有多少不同的GCD 思路 xff1a 利用集合set tmp维护 到当前子串的最后一个元素的所有GCD xff0c set ans保存所有不同种类的
  • WGS84与大地2000坐标转换(Java,C#,Dart)

    一 坐标转换的必要性 平面坐标在道路测绘 隧道测量 农业建筑业等室外勘测等方面有着广泛的应用 各行业基本都会涉及到移动端测量之后不能满足屏幕坐标 所以需要经纬度的转换 移动端勘测结果都是WGS84坐标或者GCJ 02格式坐标 而实际工程项目
  • Flutter百度地图

    Flutter百度地图 重构项目 一 实现效果如下图 qq交流群 群号 730772561 1 地图中任意踩点进行杆塔和设备的新建 对与点和线进行关联 2 对于点和线进行各种操作 3 自定义区域下载离线地图 4 热烈线 5 自定义瓦片地图
  • Jetpack-Compose-自定义绘制

    上节课我们简单的利用了一下自定义裁剪和自定义就能玩出如下简单案例 效果不错 这节课咋们来看看Compose自定义绘制能不能花里胡哨 一 Compose自定义 自定义 一个应用的可创造性往往离不开人们的千奇百怪想象和用户变化万千的需求 自定义
  • JetPack-Compose - Flutter 动态UI?

    一 Flutter 初遇 2018 06月左右入坑Flutter 于是拿出美团和痘印等好看的界面感受了一波Flutter UI和绘制等写了三天的Demo也感受到了Flutter强大 当时匆匆忙忙就写了相关Demo上传了Github 不知不觉
  • Compose for Desktop (Kolin跨平台编写Mac微信应用)

    春光不自留 xff0c 莫怪东风恶 掘金博客地址 创作不易 希望点赞 Compose for Desktop Compose是由Kotlin语言快速编辑界面的框架 xff0c 基于谷歌的现代工具箱 xff0c 由JetBrains为您带来
  • Android层叠式卡片效果实现!(高大上)

    一 xff0c 上班闲来无聊 xff0c 撸发代码 实现Android层叠卡片效果如下图 xff01 1 我们可以随意方向的拖动这个卡片 2 我们可以将卡片放在一起显示且有层叠式效果 3 我们可以将最上层的卡片移除 xff0c 当移除最底层
  • Java中如何将一个数组分割成多个等长度的数组

    Java中如何将一个数组分割成多个等长度的数组 xff0c 最后剩下的为一个素组 先看图分析数据提取公式分装代码 1 如下我们需求 最近朋友android项目中有一个需求如下 xff1a 这一个长集合 item0 item1 item2 i

随机推荐

  • 作为移动端(Android)开发的我已被前端框架Bootstrap所折服

    一 xff0c Bootstrap介绍 xff1a 一年前的我还沉浸在移动端各种适配和优化中不能自拔 xff0c 为了适配市场的各种分辨率 xff0c 我拿着谷歌百分比布局 xff0c 也有生成各中分辨率下的尺寸文件 xff0c 或通过测量
  • Mac安装Stable Diffusion教程【超详细教程】附带安装包

    Mac安装Stable Diffusion教程 本机配置Mac安装Stable Diffusion教程 配带官方说明重要注意事项安装所需文件已上传网盘自动安装新安装 xff1a 自动安装现有安装 xff1a 下载稳定扩散模型故障排除Web
  • Flutter三天学习基础-------一天搞定项目

    Flutter学习三天搞定项目 2019年 xff0c 相继推出了flutter免费视频教学 希望能够帮助初学者 最终搞定b站一二级界面 xff1a https space bilibili com 265453330 spm id fro
  • 玩转python(一)——微信远程控制电脑

    1 综述 这是一个挺有意思的 python 程序 xff0c 基于 itchat 实现微信控制电脑 你可以通过在微信发送命令 xff0c 来拍摄当前电脑的使用者 xff0c 然后图片会发送到你的微信上 甚至你可以发送命令来远程关闭电脑 效果
  • Centos7 离线安装 K3S

    基于版本 v1 19 3 43 k3s2 1 下载相关资源 k3s airgap imagesk3s 二进制文件k3s 安装脚本docker rpm包 含containerd io docker ce docker cli containe
  • Linus 2020-11月最快Intel游戏电脑 清单

    视频链接 xff1a https www bilibili com video BV1Ey4y167YM 配件型号备注CPUi9 10900K5 7GHz 现在比起AU差些主板华硕Maximus XII Extreme超频主板内存镁光 Ba
  • Linuz目前最快AMD 游戏电脑! 截至2020年11月29日

    视频地址 xff1a https www bilibili com video BV1ip4y167L5 这一次是DigitalStorm直接发的整机AventumX xff0c 配置如下 xff1a 硬件型号备注CPURyzen 5950
  • 运维大镖客:Linux 合规配置脚本第一版

    还在为Linux合规配置检查不过关而发愁吗 xff1f 最新的配置合规脚本来啦 xff01 20220609 作者注 xff1a 之后的脚本将会在新的网络空间安全付费专栏发布 xff0c 如需要更新的版本 xff0c 请移步专栏观看 spa
  • MongoDB 4.2 数据迁移与备份指南

    MongoDB 4 2 数据迁移与备份指南 来源于MongoDB Manual 4 2 https docs mongodb com v4 2 tutorial restore replica set from backup 原文 xff1
  • Minio 代理 Alibaba Cloud OSS

    Minio 代理 Alibaba Cloud OSS 在2017年12月份Minio引入Aliyun OSS 支持到master分支 xff0c 但是在2020年4月因为License问题导致阿里云OSS支持被移除 xff0c 后来2020
  • Rancher 2.4.x 单容器证书过期&证书轮换方法

    Rancher 2 4 x 官方文档之证书轮换 https rancher2 docs rancher cn docs rancher2 cluster admin certificate rotation index 错误现象 xff1a
  • Docker与Firewalld冲突怎么办?教你几招搞定docker网络

    docker ce默认会采用桥接网络 xff0c 它会通过iptables来管理它的容器之间的通信和容器与宿主机的通信 xff0c 如果同时启用了firewalld服务 xff0c 他们都会对iptables里面的转发链写入规则 xff0c
  • 当ChatGPT遇上StableDiffusion ChatGPT指导StableDiffusion绘画

    ChatGPT指导StableDiffusion 前言开始使用场景1 xff1a 繁华的街道场景2 xff1a 桥上的女生 项目及教程地址 xff0c 附GPT访问地址安装教程及安装包地址 xff1a 点我下载开源项目 xff1a 点我下载
  • CentOS7 使用RPMBUILD 编译 Openssh rpm包并安装

    若要进行生产环境的操作 xff0c 请务必看完整篇文档 实验环境 xff1a Centos7 4 离线系统 目前已经成功完成了openssh 9 1p1的编译 1 准备openssh源码包 在home目录开始 xff0c 设置工作目录 sp
  • Linus工作室 2021年 PB级存储方案

    来自于加拿大Linux 工作室 本文章仅整理内容 xff0c 另外还有一些本人的理解 实际上这已经是Linux PB计划第二代了 xff0c 比第一代更加NB 原视频地址 xff1a https www bilibili com video
  • 搭建本地yum repo

    在一些离线环境中无法使用在线的yum repo xff0c 只能使用本地的yum仓库 搭建的方式有如下几种 xff1a 使用本地meida使用本地media搭建远程服务器自建repo mirror xff08 施工中 xff09 1 使用本
  • Linux 系统安全加固篇之安全加固脚本

    该专栏内的脚本都会定期更新 xff0c 请注意变化 脚本适用于Centos 7 x系列 xff0c 同样支持Redhat 7 x系列 使用之前建议通读脚本注释 xff0c 并确认不会影响你现在在用的业务 注意脚本内部包含一定的参数 xff0
  • Docker导出正在使用中的镜像

    Docker 导出正在使用中的容器镜像 span class token comment xff01 bin sh span span class token assign left variable IMAGE DIR span span
  • Windows 10 数据恢复与预防数据丢失指南

    Windows 数据恢复与预防数据丢失指南 这个思路适合所有的windows版本 xff0c 但是有些数据恢复软件只能兼容新版系统 xff0c 这些不在我们的讨论范围内 如果你在使用电脑时不慎删除了一个重要的文件 xff0c 那么你可以在你
  • Flask SqlAlchemy Postgres 场景下如何使用右连接(Right Join)

    在Sqlalchemy中只有左连接 xff0c 而没有设计右连接 虽然说左右连接可以相互转换 xff0c 但是有些特定的场景下还是没有办法交换位置 所以我们选择了替代方案 xff0c 使用SqlAlchemy的全连接 FULL JOIN F