使用Mysql更新进行查询
我有两张表T和T1 T T1 我正在寻找一种方法来获得下表中的T使用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
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)