使用INSERT使用MySql进行子查询

时间:2015-06-30 09:21:46

标签: mysql subquery

我正在尝试更新数据库,使用一个不容易知道用户ID的脚本,因此我使用子查询让mysql找到用户ID(对于posteruserid值)。这是我正在使用的SQL查询:

INSERT INTO `thread` (`title`, `forumid`, `open`, `replycount`,
 `postercount`, `postusername`, `postuserid`, `lastposter`, 
`dateline`, `visible`, `keywords`) 

SELECT 'IN', 2, 1, 0, 1, 'lemons', `userid` FROM `user` 
WHERE `username` = 'lemons', 'lemons', 1375768440, 1, 'IN';

我从上面的SQL中收到语法错误,我无法弄清楚我做错了什么。

由于列名不匹配而编辑,我尝试使用别名,但仍然不起作用

INSERT INTO `thread` (`title`, `forumid`, `open`, `replycount`,
`postercount`, `postusername`, `postuserid`, `lastposter`, 
`dateline`, `visible`, `keywords`)

SELECT 'IN', 2, 1, 0, 1, 'lemons',
`userid` AS `postuserid` FROM `user` WHERE `username` = 'lemons',
'lemons', 1375768440, 1, 'IN';

2 个答案:

答案 0 :(得分:0)

insert和select query..column中的列不匹配应该与要插入的位置以及从中获取数据的位置相同。

答案 1 :(得分:0)

您指定插入11列的值,但在lastposter语句中,您只提供7个值。请提供datelinevisiblekeywords和{{1}}的值。