使用条件[MYSQL]将行从一个表迁移到另一个表

时间:2014-05-23 08:06:26

标签: mysql sql database

我有2个MYSQL表:

TABLE 1:

PRODUCTID | BRAND | BASECOLOR | COLORNAME

Table 2:

PRODUCTID | BRAND | COLORNAME

在表1中,字段'COLORNAME'为空,字段'PRODUCTID'和'BRAND'必须在两个表中匹配。我需要将行'COLORNAME'从table2移到表1.我已经完成了这个SQL请求:

INSERT INTO tablel (COLORNAME) SELECT COLORNAME FROM table2 WHERE table1.PRODUCTID = table2.PRODUCTID AND table1.BRAND  = table2.BRAND

我得到了这个答案:

'where子句'中的未知列'table1.PRODUCTID'

我是SQL的新手,所以我有点失落,我会感谢一些帮助。

3 个答案:

答案 0 :(得分:2)

试试这个:

update table1 tab1, table2 tab2 set tab1.colorname=tab2.colorname where tab2.brand=tab1.brand;

答案 1 :(得分:0)

INSERT INTO tablel (COLORNAME) (SELECT t2.COLORNAME FROM table2 t2,tablel t1 WHERE t1.PRODUCTID = t2.PRODUCTID AND t1.BRAND  = t2.BRAND)

答案 2 :(得分:0)

您需要UPDATE JOIN表而不是INSERT:

UPDATE TABLE1 a 
    JOIN TABLE2 b ON a.PRODUCTID=b.PRODUCTID AND a.BRAND=b.BRAND
SET a.COLORNAME = b.COLORNAME