我正在尝试更新数据库,使用一个不容易知道用户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';
答案 0 :(得分:0)
insert和select query..column中的列不匹配应该与要插入的位置以及从中获取数据的位置相同。
答案 1 :(得分:0)
您指定插入11列的值,但在lastposter
语句中,您只提供7个值。请提供dateline
,visible
,keywords
和{{1}}的值。