使用Mysql Update查询

时间:2013-12-10 20:01:06

标签: mysql sql

我有两张表TT1 Ť

 id   p   o 
 1    47  1
 2    47  2
 3    47  25 

T1

id   p    
 1    47  
 2    48  
 3    49

我希望找到一种方法将T作为下表

     id   p   o 
     1    47  1
     2    47  2
     3    47  0

如果T.p in (select T1.p from T1)且字段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)

有关详细信息Sqlfiddle

非常感谢提前。

2 个答案:

答案 0 :(得分:2)

SQL Fiddle

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)

答案 1 :(得分:1)

尝试这样的事情:

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)