insert into A(bid,a,b) VALUES ( SELECT MAX(Id) From B,a,b );
想向A表插入B表的最大Id或者最新Id,但我知道这样语法不对,求问怎么改?
你这条语句插入的是最大的Id,是对的
你的a,b的类型是字符串吧??那你后面的a,b都需要加单引号
你后面的写的有问题,索引这样是查不出来的。
如果你没有其它的条件,比如索引跳值。
那你直接计算出B数据库里有多少条数据就行了,最大的索引也就是B数据库里数据的总数。
还有你后面的子查询语句应该还要加一对括号。
我一般写sql都是分开分步骤写的,这样写虽然效率低一些,但是清晰明白好懂的。
MAX(id)属于聚合函数,应该有group by吧!
你既然将它作为一个值来用,可以加个()试试。
你需要插入三个字段,但是你却只查询出了一个字段,这么的写法明显是不对的。
insert into A(bid,a,b) VALUES ( SELECT MAX(Id),a,b From B );
或许。你应该这么做。另外,提sql问题的时候,最好把你使用的数据库也列出来。
要a, b字段,那就用group by,我写个mysql语法:
insert into A(id,a,b)
SELECT MAX(Id),a,b
From B
group by a, b;
这个是db2的语法,不知道你是啥数据库
insert into A(bid,a,b) SELECT ( SELECT MAX(Id) From B) as maxid,a,b From B;
insert into A(bid) VALUES ( SELECT MAX(b.Id) From B b group by b.id );
b.id 就是 b 表的最大id 其他字段自已加上
SQL语句都是一样的,和数据库没关系吧
insert into A(bid,a,b) SELECT ( SELECT MAX(Id) From B) as maxid,a,b From B;
简单的insert select 语句,insert into A(id,a,b) select max(Id),a,b from B
如果a和b是固定值的话,可以这样写:insert into A(bid,a,b,) select max(Id) id,'a' a,'b' b from B group by a,b