首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(SQLALCHEMY):如何查询表以返回另一个表中不存在的项(基于7个值主键)

在SQLAlchemy中,可以使用子查询或者外连接来查询一个表中不存在于另一个表中的项。下面是两种常见的方法:

  1. 使用子查询:
  2. 使用子查询:
  3. 使用外连接:
  4. 使用外连接:

这两种方法都可以实现查询一个表中不存在于另一个表中的项。使用子查询的方法适用于较小的表,而使用外连接的方法适用于较大的表。根据具体的业务需求和数据规模,选择适合的方法来查询。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

flask数据操纵

如果为True,为这列创建索引,提高查询效率 nullable 如果为True,允许有空,如果为False,不允许有空 default 为这列定义默认 关系类型 选项 说明 backref 在关系另一模型添加反向引用...Flask-SQLAlchemy中常用过滤器: 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit...() 使用指定限定原查询返回结果 offset() 偏移原查询返回结果,返回一个新查询 order_by() 根据指定条件对原查询结果进行排序,返回一个新查询 group_by() 根据指定条件对原查询结果进行分组...,返回一个新查询 Flask-SQLAlchemy中常用执行器: 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or..._404() 返回查询第一个结果,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count()

1.3K10

Flask 操作Mysql数据库 - flask-sqlalchemy扩展

最基本查询返回中所有数据,可以通过过滤器进行更精确数据库查询。 下面先来创建两个数据模型:用户和角色。...在视图函数定义模型类 看完了上面那么多概念说明,下面来看看如何创建数据模型以及创建数据,如下: 1.在脚本15_SQLAlchemy.py编写创建User和Role数据模型 from flask...常用SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定限定原查询返回结果...常用SQLAlchemy查询执行器 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果...,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate

5.4K20
  • Flask-SQLAlchemy操作数据库

    ,而使用标量值 order_by 指定关系记录排序方式 secondary 指定多对多关系关系名字 secondary join 在SQLAlchemy无法自行决定时,指定多对多关系二级联结条件...常用SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit() 使用指定限定原查询返回结果...常用SQLAlchemy查询结果方法 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果...,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate...User.query.filter(User.name.endswith('g')).all() get():参数为主键,如果主键不存在没有返回内容 User.query.get() 逻辑非,返回名字不等于

    1.5K20

    SqlAlchemy 2.0 中文文档(十)

    这种做法在某种程度上基于 SQLAlchemy 非常早期历史,其中Mapper构造被认为是主要查询接口;在现代用法,Query对象可以用于构造几乎任何 SELECT 语句,包括复杂复合语句,并且应优先于...也就是说,如果将记录 PtoQ 映射到“p”和“q”,其中它基于“p”和“q” LEFT OUTER JOIN 行,如果进行更新更改现有记录“q”数据,则“q”行必须存在;如果主键标识已经存在...这种做法在某种程度上基于 SQLAlchemy 早期历史,其中Mapper构造旨在代表主要查询接口;在现代用法,Query对象可用于构造几乎任何 SELECT 语句,包括复杂复合语句,并且应优先使用...在这种映射形式,将扫描类获取映射信息,包括要与关联列和/或实际对象。 返回Mapper对象。...包含作为此Mapper在映射主键一部分Column对象集合可迭代对象,从此Mapper角度来看。 这个列表与Mapper.persist_selectable可选择相对。

    21610

    Flask 操作Mysql数据库 - flask-sqlalchemy扩展

    最基本查询返回中所有数据,可以通过过滤器进行更精确数据库查询。 下面先来创建两个数据模型:用户和角色。...在视图函数定义模型类 看完了上面那么多概念说明,下面来看看如何创建数据模型以及创建数据,如下: 1.在脚本15_SQLAlchemy.py编写创建User和Role数据模型 from flask...常用SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定限定原查询返回结果...常用SQLAlchemy查询执行器 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果...,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate

    21K22

    SqlAlchemy 2.0 中文文档(二十四)

    该功能在读取和写入操作中都是全面的;针对映射到engine1实体Query(通过查看请求列表第一个实体来确定)将使用engine1来运行查询。...大多数情况下,SQLAlchemy 在设置事件发生时不需要“旧”,因此如果旧不存在,则会跳过 SQL 调用开销,这基于以下假设:标量值通常需要更新,在那些几种情况不需要,平均而言比发出防御性 SELECT...注意,高度隔离事务将返回在同一事务先前读取相同,而不管该事务外部数据库状态变化如何。刷新属性通常只在事务开始时有意义,此时数据库行尚未被访问。...大多数情况下,当发生设置事件时,SQLAlchemy 不需要“旧”,因此,如果旧不存在,则跳过 SQL 调用开销,基于假设更新标量值通常是必要,而在那些很少情况下它不是,平均而言比发出防御性...参数: createfunc – 返回要放置在注册新对象可调用函数 scopefunc – 一个可调用函数,将返回一个键存储/检索对象。

    34610

    Flask入门第三天

    最基本查询返回中所有数据,可以通过过滤器进行更精确数据库查询。   ...SQLAlchemy查询结果方法 all():列表形式返回查询所有结果 first():返回查询第一个结果,如果未查到,返回None first_or_404():返回查询第一个结果,如果未查到...,返回404 get():返回指定主键对应行,如不存在返回None get_or_404():返回指定主键对应行,如不存在返回404 count():返回查询结果数量 paginate():返回一个...User.query.filter(User.name.endswith('g')).all() get():参数为主键,如果主键不存在没有返回内容 User.query.get() 逻辑非,返回名字不等于...,应用对象将从蓝图对象 defered_functions 列表取出每一,并以自身作为参数执行该匿名函数, 即调用应用对象 add_url_rule() 方法,这将真正修改应用对象路由

    2.7K20

    Flask_数据库

    最基本查询返回所有数据,可以通过过滤器进行更精确数据库查询....)).all() # get 参数为主键,如果主键不存在没有返回内容 User.query.get() # 逻辑非,返回名字不等于wang所有数据 User.query.filter(User.name...='wang',User.email.endswith('163.com'))).all() 常用SQLAlchemy 查询执行器 方法 说明 all() 列表形式返回查询所有结果 first()...返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404...() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate() 返回一个Paginate对象,它包含指定范围内结果 paginate 方法详解 #

    1.3K50

    Flask对MySQL基本操作

    最基本查询返回中所有数据,可以通过过滤器进行更精确数据库查询。...查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定限定原查询返回结果 offset...查询执行器 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果,如果未查到,返回404...get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate() 返回一个Paginate...get():参数为主键,如果主键不存在没有返回内容 User.query.get() 逻辑非,返回名字不等于wang所有数据 User.query.filter(User.name!

    1.3K10

    Flask入门到放弃(四)—— 数据库

    最基本查询返回中所有数据,可以通过过滤器进行更精确数据库查询。 定义模型类 我们后面会把模型创建到单独文件,但是现在我们先把模型类写在manage.py文件。...常用SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit() 使用指定限定原查询返回结果...常用SQLAlchemy查询结果方法 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果...,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate...Student.query.filter(Student.name.endswith('g')).all() get():参数为主键,如果主键不存在没有返回内容 Student.query.get()

    3.2K20

    Flask数据库

    一 数据库设置 Web应用普遍使用是关系模型数据库,关系型数据库把所有的数据都存储在用来给应用实体建模,列数是固定,行数是可变。它使用结构化查询语言。...: 常用SQLAlchemy查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定限定原查询返回结果...常用SQLAlchemy查询执行器 方法 说明 all() 列表形式返回查询所有结果 first() 返回查询第一个结果,如果未查到,返回None first_or_404() 返回查询第一个结果...,如果未查到,返回404 get() 返回指定主键对应行,如不存在返回None get_or_404() 返回指定主键对应行,如不存在返回404 count() 返回查询结果数量 paginate...,如果主键不存在没有返回内容 ?

    3K20

    SqlAlchemy 2.0 中文文档(七十九)

    属性事件可以选择是否有责任返回一个新。 几个系统现在基于事件 API 进行构建,包括新“可变属性” API 以及复合属性。...确保所有后端在 result.inserted_primary_key 中一致地返回 None - 一些后端可能之前返回过一个。在主键列上使用 server_default 是极不寻常。...属性事件可以选择是否要负责返回一个新。 几个系统现在基于事件 API 构建,包括新“可变属性” API 以及复合属性。...确保所有后端一致地对这些在 result.inserted_primary_key 返回 None - 一些后端以前可能返回了一个。在主键列上使用 server_default 是极不常见。...确保所有后端一致地在 result.inserted_primary_key 为这些返回 None-一些后端以前可能返回了一个。 在主键列上使用 server_default 是极不寻常

    9710

    SqlAlchemy 2.0 中文文档(二十一)

    要了解如何基于Query应用程序迁移到 2.0 样式,请参阅 2.0 迁移 - ORM 用法。 要了解如何以 2.0 样式编写 ORM 对象 SQL,请从 SQLAlchemy 统一教程开始。... Query.get() 方法现在可选择性地接受属性名到字典,指示主键标识符。...表示此查询语句访问器应返回一个 SELECT 语句,该语句将标签应用于形式为_所有列;这通常用于消除具有相同名称多个歧义。 当查询实际发出 SQL 加载行时,它总是使用列标签。...Query.get() 仅用于返回单个映射实例,而不是多个实例或单个列构造,并且严格地基于单个主键值。源 Query 必须这种方式构造,即针对单个映射实体,没有额外过滤条件。...:Query.get() 方法现在可选地接受属性名称到字典,指示主键标识符。

    51310

    SqlAlchemy 2.0 中文文档(十五)

    这两种用例是: 一个包含对自身外键,而且单个行将具有指向其自身主键外键值。 两个都包含对另一个外键引用,每个一行引用另一个另一行。...##可变主键/更新级联 当实体主键更改时,引用主键相关也必须更新。...这两种用例是: 一张包含一个指向自身外键,而且一行将具有指向自己主键外键值。 两个分别包含一个外键引用另一个,每个一行引用另一个。...ON UPDATE CASCADE 当使用不支持引用完整性数据库,并且存在具有可变自然主键时,SQLAlchemy 提供了一功能,允许在有限范围内传播主键值到已引用外键,方法是针对立即引用其已更改主键列发出...primaryjoin – 将用作子对象与父对象之间主要连接 SQL 表达式,或者在多对多关系中将父对象连接到关联。默认情况下,此基于和子表(或关联外键关系计算。

    22610

    SqlAlchemy 2.0 中文文档(二十)

    可以被子类覆盖在获取结果时提供自定义行为。该方法在查询执行时传递语句对象和一组“行处理”函数;这些处理函数在给定结果行时将返回单个属性,然后可以将其调整为任何返回数据结构。...可以被子类覆盖在获取结果时提供自定义行为。该方法在查询执行时传递给语句对象和一组“行处理”函数;这些处理函数在给定结果行时将返回单个属性,然后可以将其调整为任何返回数据结构。...此元素首先存在支持执行按行“sharding”扩展,其中对象可以从特定数据库任何数量副本中加载,尽管它们具有重叠主键值。...可以被子类重写在获取结果时提供自定义行为。该方法在查询执行时传递了语句对象和一组“行处理器”函数;这些处理器函数在给定结果行时将返回单个属性,然后可以将其适应为任何类型返回数据结构。...可以被子类覆盖在获取结果时提供自定义行为。 方法在查询执行时传递语句对象和一组“行处理”函数;给定结果行时,这些处理函数将返回单个属性,然后可以将其调整为任何类型返回数据结构。

    24210

    SqlAlchemy 2.0 中文文档(五十四)

    如何映射没有主键?...为什么推荐在 LIMIT 中使用 ORDER BY(特别是在 subqueryload() )? 如何映射没有主键?...映射类需要为每个要存储独立属性指定明确名称;当两个列具有相同名称并且没有消歧义时,它们就会落入同一个属性下,效果是从一个列被复制到另一个,取决于哪个列首先分配给属性。...我已经针对外连接创建了映射,但是虽然查询返回行,但没有返回对象。为什么? 由外连接返回行可能包含主键部分 NULL,因为主键是两个组合。Query对象忽略不具有可接受主键传入行。...我已经创建了一个针对 Outer Join 映射,虽然查询返回了行,但没有返回对象。为什么? 外部连接返回行可能会对主键某部分包含 NULL,因为主键是两个组合。

    29110

    Python Web 之 Flask-SQLAlchemy 框架

    如果设为 True,列为主键 unique 如果设为 True,列不允许出现重复 index 如果设为 True,为列创建索引,提升查询效率 nullable 如果设为 True,列允许使用空..., 返回一个新查询 filter_by() 把等值过滤器添加到原查询上, 返回一个新查询 limit() 使用是zing限制原查询返回结果数量, 返回一个新查询 offset() 偏移原查询返回结果...列表形式返回查询所有结果 first() 返回查询第一个结果,如果没有结果,则返回 None count() 返回查询结果数量 get() 返回指定主键对应行,如果没有对应行,则返回 None...只在模棱两可关系需要指定. lazy 指定如何加载相关记录。...uselist 如果设为 Fales,不使用列表,而使用标量值 order_by 指定关系记录排序方式 secondary 指定多对多关系关系名字 secondaryjoin SQLAlchemy

    2.8K40

    SqlAlchemy 2.0 中文文档(一)

    处理数据 - 在这里我们学习如何在数据库创建、选择、更新和删除数据。这里所谓 CRUD 操作 SQLAlchemy 核心形式给出,并链接到其 ORM 对应。...处理数据 - 这里我们学习如何在数据库创建、选择、更新和删除数据。这里所谓 CRUD 操作 SQLAlchemy Core 术语给出,并链接到其 ORM 对应。...在接下来章节,我们将说明如何使用这些结构创建、操作和选择数据。 使用 Table 对象设置 MetaData 当我们使用关系型数据库时,数据库我们查询基本数据持有结构被称为。...INSERT…RETURNING 支持后端自动使用 RETURNING 子句检索最后插入主键值以及服务器默认。...user_account DEFAULT VALUES INSERT…RETURNING 支持后端自动使用 RETURNING 子句检索最后插入主键值以及服务器默认

    80510
    领券