求sql语句, 联合两个表查询,建立一个新表,如何实现?

2024-10-31 18:21:29
推荐回答(3个)
回答(1):

不知道为什么要这样做,有疑问:
1.既然是关系型数据库,为什么还要个合并AB表(假设称C表)的Table出现。
2.既然A,B表发生更改,C表也改变,又为何不要view来做?
3.增加的两个栏位 运费结算 状态 为何不直接不放在A表呢?

如果非得这样做的话,Oracle数据库,你可以
create table C as
( select a.ID, a.发货单号, a.日期, a.价格
b.存货名称,b. 数量,
null 运费结算,null 状态
from a,b
where a.id=b.id(+)
);
再将A,B对应写一个Trigger(触发器)来改变C表

总之,这种方式我怎么也想不通

回答(2):

select A.ID,A.发货单号,A.日期,A.价格,B.存货名称,B.数量,0 as 运费结算,0 as 状态
into AB from A inner join B on A.ID=B.ID
根据你运费结算和状态的类型,可以定义成''空来代替0

回答(3):

create proc st_jsjbj
as
insert into AB select A.发货单号,A.日期,A.价格,B.存货名称,B.数量 from A inner join B on A.Id=B.id
go

alter table AB add 运费结算 varchar(20) null,状态 varchar(20) null
execute st_jsjbj

你试试