求sql语句两个表合并

来源:百度知道 编辑:UC知道 时间:2024/05/03 21:42:30
A,B产品价格表,两个表中有一部分产品是相同的,但是价格不同,要求生成c表:
A,B单独拥有的产品,保留产品名称和价格;A,B中相同的产品,用A的价格减去B的价格,放在“差价”列中
yolanda_yang08能否写一下注释,我看的眼都花了

(select p, j --p是产品,j是价格
from (select p, j
from a
union
select p, j from b) A ----将两个表的所有数据连接,组成临时表
group by A.p
having count(*) = 1) --根据产品分组,将临时表A中的a,b单独拥有产品列出
union
(select a.p, (select a.j - b.j from a, b where a.p = bj) j
from a, b
where a.p = b.p) --a.b共有的,求差

两张表的结构(包括主键,和查询所会涉及到字段)
源数据和结果数据的示例