MySQL之多表关联删除/更新

2023-11-07

日常测试的时候,需要连接其他表而删除某些脏数据,按照正常的查询的写法,会这样写删除语句:

DELETE from `order` 
where id in (SELECT o.id from `order` o LEFT JOIN customer c on o.customer_id =c.id where o.customer_id is not null and c.id is null);

然后… You can’t specify target table ‘order’ for update in FROM clause
在这里插入图片描述
意思是:不能先select出同一表中的某些值,再update这个表,即不能依据某字段值做判断再来更新某字段的值。

好吧~~~

百度研究一番这么解决这个多表连接删除的问题。
这里也疑惑了下,多表关联的更新表的写法为啥看书、看视频的时候都不见介绍???

-- 删除order表的数据,注意:通过别名删除
DELETE o 
FROM `order` o
	LEFT JOIN customer c ON o.customer_id = c.id 
WHERE o.customer_id IS NOT NULL AND c.id IS NULL

-- 删除customer表数据,注意:通过别名删除
DELETE c 
FROM `order` o
	LEFT JOIN customer c ON o.customer_id = c.id 
WHERE o.customer_id IS NOT NULL AND c.id IS NULL

-- 同时删除order、customer表数据,注意:通过别名删除
DELETE o,c 
FROM `order` o
	LEFT JOIN customer c ON o.customer_id = c.id 
WHERE o.customer_id IS NOT NULL AND c.id IS NULL

顺便也研究了下多表连接时怎么更新:

UPDATE wx_customer wc
LEFT JOIN `order` o ON wc.id = o.wx_customer_id 
SET o.wx_customer_id = NULL, wc.customer_id = NULL,wc.relate_wx_id = NULL 
WHERE	wc.id = "937680";

这里提一嘴:多表连接的更新,可以同时更新两个表 ~

百度学习的时候,也有些大佬使用别名。。。。这个写法日自己不怎么使用,这里就不贴上来了

总结规矩(不然有点不好记~):

不管是SELECT、DELETE 还是 UPDATE语句,都是在表这里进行多表关联操作。

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

MySQL之多表关联删除/更新 的相关文章

  • 如何在MySQL中查找上周的数据

    我想显示来自 Q1 每个学生只有最后一周 Q2 每个学生只有最后一个月 我怎样才能实现这个目标 一周演示 http sqlfiddle com 2 f1fbb 3 当月演示 http sqlfiddle com 2 f1fbb 4 CREA
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • 在mysql中搜索“SanF”时获取旧金山的记录

    当我搜索 SanF 时获得 San Francisco 记录 SELECT FROM table WHERE col LIKE san Works SELECT FROM table WHERE col LIKE san F Works S
  • MySQL 触发器和 SUM()

    我有两张桌子 学生桌和家庭桌 在学生中 我有列 st venue 和total venue 家里我有收入 Total Revenue 是学生 st 收入与家庭收入之和 其中 family id student student id stud
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • ejabberd 16.06 + mysql 5.5.50,消息历史记录不保存

    我使用ejabberd 16 06 mysql 5 5 50 消息历史记录没有保存 我的 ejabberd yml MySQL server odbc type mysql odbc server freldo odbc port 3306
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • 高效插入和更新时检查唯一性

    我的员工表中有 2 列 每列值必须是唯一的 staff code staff name staff id staff code staff name 1 MGT Management 2 IT IT staff 当向表中插入或更新项目时 我
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B
  • 在JavaFX中如何在表视图中添加带有数据的组合框

    我已经尝试了很多 但无法将数据库中的所有值填充到我的组合框表格单元格中 控制器 java public class controller GetConnection gc new GetConnection PreparedStatemen
  • 使用 MySQLdb 在 Python 中执行 .sql 文件

    我有一个 sql 文件 其中包含一堆 SQL 查询 每个查询跨越多行 我想通过 Python 在 MySQL 中执行这些查询MySQLdb sqlite3为此目的有一个 非标准快捷方式 称为executescript http docs p
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • 如何使用 PATCH 更新简单的数据库字段?

    我是 php 和 API 的新手 我正在尝试学习这些方法 但我无法执行 PATCH 或 PUT 来更新我的简单 mysql 数据库 我使用了以下代码 if isset PATCH con mysqli connect localhost r
  • 如何编写 bash 函数来包装另一个命令?

    我正在尝试编写一个函数包装器mysql command If my cnf存在于 pwd 中 我想自动附加 defaults file my cnf到命令 这就是我正在尝试的 function mysql if e my cnf then
  • 1:1 关系中的双向外键约束

    我正在使用 MySQL 数据库 在我的关系数据模型中 我有两个相互 1 1 关联的实体 在我的架构中 通过将 FK 字段放入两个表之一中来建立 1 1 关系 该字段与另一个表的 PK 相关 两个表都有 PK 并且都是自动递增的 BIGINT
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • MySQL 选择第一个字符在哪里

    如何选择单元格的第一个字符并使用它来定义返回的内容 看看MySQL 字符串 和 控制流 功能 http dev mysql com doc refman 5 1 en functions html 例如 SELECT IF LEFT myF

随机推荐

  • [Linux] linux系统安装git

    目录 前言 一 git的安装方式 二 git 安装流程 2 1 解压下载的压缩包 三 配置Git 3 1 配置git名字和邮箱 3 2 查看名字和邮箱 四 总结 前言 Git是一种分布式版本控制系统 广泛用于软件开发和版本管理 它可以跟踪文
  • Could not resolve placeholder 'foo' in value "${foo}" 解决方法

    D Program Files Java jdk1 8 0 101 bin java agentlib jdwp transport dt socket address 127 0 0 1 50162 suspend y server n
  • 详尽图文,用Intellij Idea创建一个普通的Java工程并用JDBC连接数据库

    Intellij Idea作为一款编程工具 自从尝到它的强大功能带来的甜头后 就再也不想用Eclipse来进行开发了 下面用它来演示一下如何创建一个普通的Java工程 并导入MySql数据库的驱动包 用JDBC方式来连接数据库 Intell
  • HDL4SE:软件工程师学习Verilog语言(四)

    4 模拟器 总是不能运行一个应用程序 对学习语言是致命的 一个Hello World 级别的应用就这么复杂 时间长了会把人的耐心磨尽 因此本节我们先暂停对verilog语言的学习 来讨论模拟器的实现 试图给出一个初步的实现 至少能够完成前面
  • 计算机视觉中的半监督学习

    原文 Amit Chaudhary Semi Supervised Learning in Computer Vision https amitness com 2020 07 semi supervised learning 2020 计
  • 【DDR3 控制器设计】系列博客汇总篇(附直达链接)

    写在前面 本篇为 DDR3 控制器设计系列博客的汇总篇 此系列包含 DDR3 的相关实验 认识 MIG 初始化 读写操作 FIFO 接口等 并附上直达链接 目前只更新了部分文章 持续学习更新中 博客汇总 Project 1 DDR3 控制器
  • 【SSH】如何删掉远程服务器中的虚拟环境?如何删掉远程服务器中的用户?如何删掉某个文件夹?

    文章目录 一 如何删掉远程服务器中的虚拟环境 二 如何删掉远程服务器中的用户 三 如何删掉某个文件夹 一 如何删掉远程服务器中的虚拟环境 在Linux系统下删除conda虚拟环境 删除虚拟环境 conda remove n your env
  • 无线局域网安全协议(WEP、WPA、WAPI)

    文章目录 一 WEP 有线等效保密 二 WPA Wi Fi网络安全接入 三 WAPI 无线局域网鉴别和保密基础结构 WLAN Wireless Local Area Network 指应用无线通信技术将计算机设备互联起来 构成可以互相通信和
  • 分块矩阵求逆不能想当然

    分块矩阵给实际运算带来了很大的方便 对于行列数都很大的矩阵 可以将其分割成一个个小块进行计算 减少了运算的繁琐程度 分块矩阵的求逆有两个非常有用的公式 能帮助我们快速得出正确结果 但是是不对的 只能假设逆矩阵 再通过求多元方程组得出逆矩阵的
  • 【华为od机试】约瑟夫问题-Python3

    题目描述 篮球 5V5 比赛中 每个球员拥有一个战斗力 每个队伍的所有球员战斗力之和为该队伍的总体战斗力 现有10个球员准备分为两队进行训练赛 教练希望2个队伍的战斗力差值能够尽可能的小 以达到最佳训练效果 给出10个球员的战斗力 如果你是
  • DLL的远程注入技术

    转载自 http blog csdn net bai bzl article details 1801023 一 DLL注入 DLL的远程注入技术是目前Win32病毒广泛使用的一种技术 使用这种技术的病毒体通常位于一个DLL中 在系统启动的
  • Spark集群搭建记录

    本文目录 写在前面 step1 Spark下载 step2 修改环境变量 bashrc etc profile step3 配置Master 文件修改 slaves spark env sh step4 配置slave节点 step5 集群
  • 图形图像基础 之 jpeg介绍

    一 概念 jpeg相关概念简介 jpeg 一种影像有损压缩标准方法 后缀jpg jpeg JPEG Joint Photographic Experts Group 联合图像专家小组 是一种针对照片影像而广泛使用的有损压缩标准方法 面向连续
  • 【报错】onMounted is called when there is no active component instance too be associated with.

    文章目录 报错 分析 解决 报错 onMounted is called when there is no active component instance too be associated with Lifecycle injecti
  • 统计分析:聚类分析(详细讲解)

    聚类分析是研究 物以类聚 的一种方法 人类认识世界往往首先将被认识的对象进行分类 早起人们主要靠经验和专业知识实现分类 但随着生产技术和社会科学的发展 对分类学的要求越来越高 靠经验和专业知识来分类越来越难 于是数学这一有力工具被引入分类学
  • textarea接受后台数据

    在jsp页面使用EL接受后台数据到textarea
  • mybatis-plus-generator生成实体类时添加jdbcType

    效果 需要修改的文件 1 基本思路 1 使用变量 useJdbcType 控制是否需要生成jdbcType 2 生成时拼接相关字段信息 2 步骤 2 1重写TableField 添加jdbcType属性 在com baomidou myba
  • rollup怎么处理.node文件

    Rollup 是一个 JavaScript 模块打包器 它可以将多个模块合并成单个文件 它可以帮助你将你的代码打包成可以在浏览器中运行的文件 要使用 Rollup 处理 node 文件 你需要使用一个 Rollup 插件 如 rollup
  • 数据挖掘基础

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 数据挖掘定义及用途 1 定义 2 用途 二 决策树 1 理论知识 1 概念 2 算法一般过程 C4 5为例 2 小结 三 关联规则 1 概述 2 关联分析
  • MySQL之多表关联删除/更新

    日常测试的时候 需要连接其他表而删除某些脏数据 按照正常的查询的写法 会这样写删除语句 DELETE from order where id in SELECT o id from order o LEFT JOIN customer c