mysql数据库,insert语句

bai5170092 2016-10-20 11:40:18
INSERT INTO a( SELECT a.`a_type`,a.`a_starttime`,a.`a_endtime`,a.`a_reason`,a.`a_place`,a.`u_id`
FROM users u
INNER JOIN attence a ON(u.`u_id` = a.`u_id`)
WHERE u.`u_id`=22669)
-----> 查询出的这表为空,想往attenc表里面插输入,u_id是外键,users表里面有22669这条数据
VALUES (2,2016-10-20 10:21:54,2016-10-20 10:21:54,'运维系统','上海',22669)
----> 时间为timestamp类型,单引为varchar,没引号为int,下面是报错。
mysql不是熟练。请大虾们解释一下。
```
1 queries executed, 0 success, 1 errors, 0 warnings

查询:insert into a( SELECT a.`a_type`,a.`a_starttime`,a.`a_endtime`,a.`a_reason`,a.`a_place`,a.`u_id` FROM users u INNER JOIN attence...

错误代码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values (2,'2016-10-20 10:21:54','2016-10-20 10:21:54','运维系统','上海',22' at line 5

执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0 sec
...全文
339 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bai5170092 2016-10-20
  • 打赏
  • 举报
回复
我知道这个了,然后我还想问一下关于这方面的问题 我有三个表users/attence/trip users u left join attence a on u.u_id = a.u_id left join trip t on a.a_id = t.a_id 关联关系是上面这样的 我这个user表是有数据的。所有u_id是有的 所有attence插入的时候我知道了怎么弄, 我然后trip表怎么插入?这个是三个表关联查询,和 插入的,u_id不是自增的,而a_id和t_id是自增的。a.type=3是会插入trip表,否则不会插入,请问这个我怎么办,描述的不怎么详细,但是项目又不能都贴出来,数据都是来自jsp页面上的
中国风 2016-10-20
  • 打赏
  • 举报
回复
向attence加数据
INSERT INTO attence  (a_type,a_starttime,a_endtime,a_reason,a_place,u_id)VALUES (2,'2016-10-20 10:21:54','2016-10-20 10:21:54','运维系统','上海',22669)
bai5170092 2016-10-20
  • 打赏
  • 举报
回复
那个insert into a a是attence表,查询的结果集正好是这个表的字段。users表和attence表有关联,users表有数据,根据users表的u_id 查询出对应的表中的字段,然后往这个表里面插入数据
中国风 2016-10-20
  • 打赏
  • 举报
回复
这一段去掉 VALUES ('2',NOW(),NOW(),"运维系统","上海",'22667') 上面一段是把结果集新增了a表
bai5170092 2016-10-20
  • 打赏
  • 举报
回复
INSERT INTO a (SELECT a.`a_type`,a.`a_starttime`,a.`a_endtime`,a.`a_reason`,a.`a_place`,a.`u_id` FROM users u INNER JOIN attence a ON(u.`u_id` = a.`u_id`) WHERE u.`u_id`=22667) VALUES ('2',NOW(),NOW(),"运维系统","上海",'22667') 还是一样的错误,我的意思是:把查询出来的结果当成列,我要往查询出来的结果(列)里面插入具体的值,然后写成这样就报错了,是语法错误,我不熟悉mysql,有没有精通一点的大神,按照我说的意思怎么修改。
中国风 2016-10-20
  • 打赏
  • 举报
回复
insert into .. values用法 时间要用引号括起来
INSERT INTO a  (a_type,a_starttime,a_endtime,a_reason,a_place,u_id)VALUES (2,'2016-10-20 10:21:54','2016-10-20 10:21:54','运维系统','上海',22669)
中国风 2016-10-20
  • 打赏
  • 举报
回复
楼主的方法没问题 没指定列时为所有列,列值类型和查询结果集的类型必须兼容,不兼容会报错
卖水果的net 2016-10-20
  • 打赏
  • 举报
回复
-- 把 select 前面的 ( 去掉,
INSERT INTO a
 SELECT a.`a_type`,a.`a_starttime`,a.`a_endtime`,a.`a_reason`,a.`a_place`,a.`u_id`
FROM users u
INNER JOIN attence a ON(u.`u_id` = a.`u_id`)
WHERE u.`u_id`=22669

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧