SQL插入?将数据从一个插入另一个

时间:2011-09-29 10:42:04

标签: mysql sql select insert

首先请理解SQL目前不是我强大的领域之一,我有点不确定为什么我无法得到查询 - 这似乎是可能的。

我们正在运行mysql服务器v5.1

我有一个文件表,我需要将一条记录插入到我们拥有的客户列表中。

所以我这样做了。

insert into filenote(clientid, notetype, datetime, notedetails)
    VALUES (clienttable.clientid, 'info','2011-09-29 09:00:00', 'example note')

select clienttable.clientid from clienttable 
    where clienttable.clientid in (1,2,3,4,5,6,7,8,9)

但是我不断从SQL中获取与select语句有关的错误,错误中没有迹象表明问题是什么,只是说明了。

  

“您在选择clienttable.clientid附近的SQL语法中出错   来自clienttable.clientid in(“

虽然我知道那里有一个问题但我看不出那个问题会是什么。请注意表中的字段名称不匹配。

这是我遵循的例子。

INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
WHERE Year(Date) = 1998

3 个答案:

答案 0 :(得分:2)

insert into filenote(clientid, notetype, datetime, notedetails)
select clienttable.clientid, 'info','2011-09-29 09:00:00', 'example note' from clienttable 
where clienttable.clientid between 1 and 9

答案 1 :(得分:2)

你混合了两种不同风格的INSERT

要使用与示例相同的方法,您需要执行以下操作:

INSERT INTO filenote(clientid, notetype, datetime, notedetails)
SELECT clientid, 'info','2011-09-29 09:00:00', 'example note'
FROM clienttable
WHERE clienttable.clientid in (1,2,3,4,5,6,7,8,9)

或使用BETWEEN

INSERT INTO filenote(clientid, notetype, datetime, notedetails)
SELECT clientid, 'info','2011-09-29 09:00:00', 'example note'
FROM clienttable
WHERE clienttable.clientid BETWEEN 1 AND 9

答案 2 :(得分:0)

INSERT INTO filenote(clientid, notetype, datetime, notedetails)
SELECT clienttable.clientid, 'info','2011-09-29 09:00:00', 'example note'
FROM clienttable
WHERE clienttable.clientid in (1,2,3,4,5,6,7,8,9);