Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询优化-单个查询限制_Mysql_Sql - Fatal编程技术网

MySQL查询优化-单个查询限制

MySQL查询优化-单个查询限制,mysql,sql,Mysql,Sql,由于访问受限,我一次只能运行一个查询。我经常需要对数十个ID运行类似于下面的查询。一个接一个地,这变成了一项相当耗时的任务 UPDATE table1 SET columnA = X, columnB = (SELECT max(columnC) FROM table2 WHERE id = <ID>) WHERE id = <ID> 你可能想试试这个 对于T-SQL: UPDATE a SET a.columnA = X,

由于访问受限,我一次只能运行一个查询。我经常需要对数十个ID运行类似于下面的查询。一个接一个地,这变成了一项相当耗时的任务

UPDATE table1 
SET columnA = X, 
       columnB = (SELECT max(columnC) FROM table2 WHERE id = <ID>) 
WHERE id = <ID>

你可能想试试这个

对于T-SQL:

UPDATE  a
SET     a.columnA = X, 
        a.columnB = max(b.columnC) 
FROM table1 a INNER JOIN table b ON a.id = b.id
WHERE a.id IN ('ID','HERE',...)
更新

对于MySQL:

UPDATE  table1 a INNER JOIN 
                   (SELECT id, Max(columnC) As iMax
                    FROM   table12
                    GROUP  BY id) b ON a.id = b.id
SET     a.columnA = X, 
        a.columnB = b.iMax
WHERE a.id IN ('ID','HERE',...)

试试贝沃。请做必要的更改,因为我已经解释了正确的方法

 UPDATE table1 as t1 INNER
      JOIN (
            SELECT id
                 , Max(columnC) As maxval
            FROM   table12
            GROUP
                BY id
           ) As t2 ON t1.id= t2.id
    SET    columnA = t1.x
    FROM   columnB = t2.maxval
    WHERE id = <ID>

这两个表中都有关系吗?表1和表2有id列。id在两个表中都用作主键。我得到“组函数的使用无效”。
 UPDATE table1 as t1 INNER
      JOIN (
            SELECT id
                 , Max(columnC) As maxval
            FROM   table12
            GROUP
                BY id
           ) As t2 ON t1.id= t2.id
    SET    columnA = t1.x
    FROM   columnB = t2.maxval
    WHERE id = <ID>