为什么用select()包装子查询是必要的?

时间:2018-05-05 23:03:19

标签: postgresql select

初学者问题:我很难理解这篇帖子的答案exercise

正确的答案是:

insert into cd.facilities 
(facid, name, membercost, guestcost, initialoutlay, monthlymaintenance) 
select (select max(facid)+1 from cd.facilities),'Spa',20,30,100000,800;

我不明白,以下代码无效?

    insert into cd.facilities 
(facid, name, membercost, guestcost, initialoutlay, monthlymaintenance) 
select max(facid)+1 from cd.facilities,'Spa',20,30,100000,800;

错误消息:

enter image description here

我分别尝试了子查询的两个版本:

select max(facid)+1 from cd.facilities

enter image description here

select (select max(facid)+1 from cd.facilities)

enter image description here

他们似乎给出了完全相同的输出。为什么在这里用select()包装子查询? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果您不使用括号,查询将尝试不仅从cd.facilities表格中选择数据,而且还会继续使用'Spa'2030等存在。