如何根据另一个表上的条件将数据插入表中

时间:2016-06-09 10:47:52

标签: mysql

我必须根据对另一个表的限制在表中的一个列中插入值。这些是条件。我有两张桌子A和B. A有一个列a,列a中的值取决于表B中的值。假设B中有b,c,d列。现在条件是这些,如果d ='Y'的值,a中的值是1 ,如果b& c中的值相同,则a的值为2,否则值为3。所以我写了这段代码。 A和B具有相同的主键值,因此行数相同

 select b ,c,d from B case when d='Y'  then insert into A(a) values(1);
 else case  when b=c then  insert into A(a) values(2); else insert into
 A(a) values(3); end case end case ;

现在似乎存在语法错误,但我觉得我的基础知识在这个主题中很弱。我认为这可以使用游标或循环轻松完成,但数据集很大,所以我认为这不可行

1 个答案:

答案 0 :(得分:4)

尝试这种方式:

insert into A(a)
select case 
          when d = 'Y' then 1
          when b = c then 2
          else 3
       end
from B