[英]SELECT FROM one table and INSERT INTO another; using WHERE & AND
INSERT INTO tblPubInfo i (img_name)
SELECT f.img_name
FROM tblPubFiles f
WHERE f.img_name<>''
AND f.pub_uid = i.uid
这是我正在尝试做的事情,但这给我一个错误。 它有什么问题以及如何解决?
您正在以您的条件(i.uid)引用目标表。 不允许这样做,因为它没有出现在表中(from子句)。
不提供错误,很难为您提供帮助。
但是,如果您的数据库是MySQL,
插入tblPubInfo i(img_name)
应该:
插入到tblPubInfo(img_name)
看这里:
那不应该是:
INSERT INTO tblPubInfo (img_name)
SELECT f.img_name
FROM tblPubFiles f, tblPubInfo i
WHERE f.img_name<>''
AND f.pub_uid = i.uid
似乎您正在尝试使用insert into语句更新记录。 那不行 使用以下内容:
UPDATE tblPubInfo i
SET i.img_name = ( SELECT f.img_name
FROM tblPubFiles f
WHERE f.img_name is not null
AND f.pub_uid = i.uid
)
您需要在Select
子句中连接两个表,以便对表tblPubInfo
使用别名i
,例如:
INSERT INTO tblPubInfo (img_name)
SELECT f.img_name
FROM tblPubFiles f
inner join tblPubInfo i on f.pub_uid = i.uid
WHERE f.img_name <> ''
尝试这个:
INSERT INTO tblPubInfo (img_name)
SELECT a.img_name
FROM tblPubFiles a INNER JOIN tblPubInfo b ON a.pub_uid = b.uid
WHERE CHAR_LENGTH(TRIM(a.img_name)) > 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.