mysql - 更新来自 SELECT 的数据

标签 mysql sql

从表 1 中选择:

SELECT a.region,a.host 
FROM ftpup a
 , ( SELECT info,type,timestamp, max(date) as time FROM ftpup GROUP BY type ) b 
WHERE a.type = b.type AND a.date = b.time AND a.status <> '0' ORDER BY a.`date` DESC

表 1 的结果:

region --- host
SB --- H1
BS --- H2
PT --- H2

表2:

hostname --- region --- status
H1 --- SB --- 1
H2 --- PT --- 0
H2 --- BS --- 1

如何在状态字段的表中UPDATE TABLE2并将其设置为2,其中第一个选择的hostname = host(RESULT FROM TABLE1)和region = 第一个选择的区域(表 1 的结果)?

最佳答案

就这么简单。只需像下面这样做:

UPDATE table2
INNER JOIN (your inner select) AS table1
ON (table2.hostname = table1.host AND table2.region = table1.region)
SET table2.status=2

关于mysql - 更新来自 SELECT 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035763/

相关文章:

php - PRESTASHOP:如何告诉 PDO 类通过套接字而不是 'localhost' 进行连接?

Java 从 Appengine 托管虚拟机连接到 Cloud SQL 第二代

java - PostgreSQL & JDBC 使用 `setArray` 设置整数数组抛出异常 "cannot cast type integer[] to integer"

MySQL 存储过程传递非常大的字符串值

java - JDBC中如何获取插入ID?

mysql - SQL:Sum 返回 null

php - 如何操作记录的ID顺序?

php - MySQL - WHERE、AND & OR 语法

php - 获取mysql记录的值并显示在下拉列表中

sql - 是否可以使用 SQL 将身份添加到 GROUP BY?