如何在MySQL中的两个表之间编写带有某些逻辑的脚本?

时间:2013-11-24 06:38:17

标签: mysql sql

这是我在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

但它没有用。

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