gpt4 book ai didi

postgresql - 如何创建一个表,插入两个具有相同主键且不重复的表,我需要所有数据

转载 作者:行者123 更新时间:2023-11-29 12:06:44 25 4
gpt4 key购买 nike

Postgres:

create table stock(item_id int primary key, balance float);
insert into stock values(10,2200);
insert into stock values(20,1900);
select * from stock;

create table buy(item_id int primary key, volume float);
insert into buy values(10,1000);
insert into buy values(30,300);
select * from buy;

结果:

 item_id | balance
---------+---------
10 | 2200
20 | 1900
(2 rows)


item_id | volume
---------+--------
10 | 1000
30 | 300
(2 rows)

现在我想要另一个包含这两个表数据的表。新表有3行item_id(10,20,30)且没有重复的数据

我需要查询这个;通过合并或加入。

最佳答案

我猜:

  • 你真的想要一个 View 而不是一个表
  • 应该从“库存”中扣除“购买”表中的值

所以这就是我认为您所追求的:

create view v_current_stock as
select item_id, sum(balance) as balance
from ( select item_id, balance from stock
union all
select item_id, -volume from buy )
group by item_id;



编辑:好像我的猜测有点不对(见评论)。也许您正在寻找 full join :

create view v as
select * from stock full join buy using (item_id);


select * from v;


item_id | balance | volume
---------+---------+--------
10 | 2200 | 1000
20 | 1900 |
30 | | 300

关于postgresql - 如何创建一个表,插入两个具有相同主键且不重复的表,我需要所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com