首先请理解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
答案 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);