Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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,我有两张表T和T1 T T1 我正在寻找一种方法来获得下表中的T id p o 1 47 1 2 47 2 3 47 0 如果T.p在T1中选择T1.p,并且字段o的值为最大值,则更新o 变成0。 我尝试了以下查询,但没有成功 Update T SET T.o=0 WHERE T.P IN (select T1.p from T INNER join select T.p from T ON T.p=T1.p) AND

我有两张表T和T1 T

T1

我正在寻找一种方法来获得下表中的T

     id   p   o 
     1    47  1
     2    47  2
     3    47  0
如果T.p在T1中选择T1.p,并且字段o的值为最大值,则更新o 变成0。 我尝试了以下查询,但没有成功

Update T
SET T.o=0
WHERE T.P IN (select T1.p from T INNER join select T.p from T ON T.p=T1.p)
AND T.o In (select Max(T.o) from T)
欲知详情

非常感谢


试着这样做:

UPDATE T
SET T.o=0
WHERE T.p in (select T1.p from T1) 
AND T.o In (select Max(T.o) from T)

此更新查询在“真实”数据库上有效吗?它在sqlfiddle页上不起作用,因为您不能更新这些表,所以只允许SELECT语句。@BWS您可以在左侧运行update,delete。好了,现在可以。。。今天我学到了一些新东西!谢谢在mysql中,不能在FROM子句中直接指定要更新的表。
Update T
SET T.o=0
WHERE T.P IN (select T1.p from T INNER join select T.p from T ON T.p=T1.p)
AND T.o In (select Max(T.o) from T)
Update T
SET T.o=0
WHERE T.P IN (select T1.p from t1 ) 
AND t.o IN (SELECT * FROM(SELECT MAX(t.o) FROM t)x)
UPDATE T
SET T.o=0
WHERE T.p in (select T1.p from T1) 
AND T.o In (select Max(T.o) from T)