insert

aoyhnmkz  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(297)

我是sql的新手我只是想知道这是否可行?如果是的话,有人能帮我吗。
以下是场景:
我有两个名为表a和表b的表,如下面的图片链接所示。
表a有myid和desc列。表b有myid和其他列。

这里有一个问题,我想将表a中突出显示的myid插入表b(而不是更新,假设imagelink中的场景表b是空的)。

s5a0g9ez

s5a0g9ez1#

根据你的描述,你可以用 insert . . . select . 我看不出是什么 A 和这个问题有关。

insert into b (myId, etc1, etc2, etc3)
     select 2, 'some data here', 'some data here', 'some data here'
     union all
     select 2, 'some data here', 'some data here', 'some data here'
     union all
     select 2, 'some data here', 'some data here', 'some data here';

这是假设 thisTableId 是自动递增的。
您可以同样轻松地从表中获取数据:

insert into b (myId, etc1, etc2, etc3)
     select a.myid, 'some data here', 'some data here', 'some data here'
     from a
     where a.myid = 2
     union all
     select a.myid, 'some data here', 'some data here', 'some data here'
     from a
     where a.myid = 2
     union all
     select a.myid, 'some data here', 'some data here', 'some data here'
     from a
     where a.myid = 2;
rks48beu

rks48beu2#

这在一个循环中显示了这一点,假设myid实际上是从表中选择的。但它回答了关于循环的问题。

;WITH n AS (
    SELECT 1 as n
    UNION ALL
    SELECT 1 + n as n from n WHERE n < 4 
)
insert into b (myId, etc1, etc2, etc3)
select myid, 'some data here', 'some data here', 'some data here'
from TableA where myID=2
cross join n

相关问题