将值从表A中的列插入表B

时间:2019-05-06 17:24:40

标签: mysql sql

表“内容”的主键为ID

ID    name     languages_ID
============================
33   lesson1     16
34   lesson2     17

表“ content_progress”的主键为ID,外键为content_ID


ID   content_ID 
================
1      33     
2      33           
3      33         
4      34    

我在content_progress表中添加了一个languages_ID列,其中的值应从content.ID = content_progress.content_ID的内容表的language_ID列中填充

我尝试了不同的SQL查询,但没有理想的结果。

INSERT INTO content_progress (languages_ID) 
SELECT
    languages_ID
FROM
    content
WHERE
    content.id = content_progress.content_ID;


ID   content_ID   languages_ID
============================
1      33            16
2      33            16
3      33            16
4      34            17

1 个答案:

答案 0 :(得分:1)

insert在表中创建新行。由于您已经有行并且只想更新它们,因此需要使用update语句,或更具体地说,使用update-join语句:

UPDATE content_progress cp
JOIN   content c ON c.id = cp.content_id
SET    cp.languages_id = c.languages_id