正如标题所暗示的那样,我试图在两个不同的表中使用单个查询来更新多行,其中 id 等于从第三个表中选择的结果。以下是示例表格布局。
CREATE TABLE hampster_families (
id INT(13) NOT NULL AUTO_INCREMENT,
family_name varchar(255) NOT NULL UNIQUE,
fuzzy_name varchar(255),
tags varchar(255),
date_added TIMESTAMP NOT NULL DEFAULT NOW(),
PRIMARY KEY (id)
CREATE TABLE apple_addresses (
id INT(13) NOT NULL AUTO_INCREMENT,
address VARCHAR(39) NOT NULL UNIQUE,
monitor BOOLEAN NOT NULL DEFAULT 0,
date_added TIMESTAMP NOT NULL DEFAULT NOW(),
hampster_family int(7) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
CREATE TABLE orange_addresses (
id INT(13) NOT NULL AUTO_INCREMENT,
address varchar(200) NOT NULL UNIQUE,
monitor BOOLEAN NOT NULL DEFAULT 0,
date_added TIMESTAMP NOT NULL DEFAULT NOW(),
hampster_family INT(7) NOT NULl DEFAULT 0,
PRIMARY KEY (id)
我正在尝试将 orange_addresses.monitor、apple_addresses.monitor 更新为等于 1,其中 orange_addresses.hampster_family、apple_addresses.hampster_family 等于从 SELECT id FROM hampster_families WHERE hampster_fammilies.family_name = "African Rabid" 返回的 id
我已经研究过使用存储变量,但是(我在这里缺乏 SQL 能力)因为这个查询需要一个变量,我不认为存储变量会起作用。鉴于此,我已经研究过使用连接来完成此操作,但我从根本上误解了 UPDATE/JOIN 组合的语法。因此,我在这里寻找一些启示!:)