求助,这样怎么改写才对? 20C

insert into A(bid,a,b) VALUES ( SELECT MAX(Id) From B,a,b );
想向A表插入B表的最大Id或者最新Id,但我知道这样语法不对,求问怎么改?

11个回答

insert into A(bid) VALUES ( SELECT MAX(b.Id) From B b group by b.id );

b.id 就是 b 表的最大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;

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

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐