首先请理解,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,其中clienttable.clientid位于(“


虽然我知道有问题,但是我看不到那是什么问题。请注意,字段名称在表中不匹配。

这是我遵循的示例。

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

最佳答案

您正在混合两种不同样式的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

09-26 21:22