这是我在MySQL中编写一些脚本的问题:
我得到一个表T1
,其中包含一些名为id t1_col_01, t1_col_02
的列和一个名为T2
的列id, t2_col_01, t2_col_02
的列。
对于R1
中的每一行T1
,如果R1.t1_col_01 = 'Yes'
中有多行具有相同的T2
列,我想更新id
R1.id
。如果没有,请设置R1.t1_col_01 = 'No'
。
我试着写:
update T1, T2
set
T1.t1_col_01 = 'Yes'
where
(select count(*) from T2 where T2.id = T1.id) > 1
但它没有用。
答案 0 :(得分:0)
你需要的是:
update T1
inner join T2
on ( T2.id = T1.id )
set T1.t1_col_01 = 'Yes'
where (select count(*) from T2 where T2.id = T1.id) > 1
在这里看小提琴: http://sqlfiddle.com/#!2/0edc4/1