我有以下表格: tblA(id,price),tblB(id,minPay) 例如:
tblA
id price
001 1.00
003 2.00
tblB
id minPay
001 10.00
004 20.00
我需要以某种方式加入这两个表来获得以下结果:
id price minPay
001 1.00 10.00
003 2.00 0
004 0 20.00
有谁知道如何实现这个目标?
答案 0 :(得分:2)
使用COALESCE()将NULL替换为ZERO值
SELECT a.id, coalesce(a.price,0) AS Price, coalesce(b.minpay,0) as Minipay
FROM tblA a FULL OUTER JOIN tblB b
ON a.id=b.id
答案 1 :(得分:1)
我认为您正在寻找完整的外部联接。 http://www.w3schools.com/sql/sql_join_full.asp
SELECT tblA.id, tblA.price, tblB.minPay
FROM tblA
FULL OUTER JOIN tblB
ON tblA.id=tblB.id
答案 2 :(得分:0)
此查询应该为您提供预期的结果。
select tblA.id, price, minpay from tblA full outer join tblB on tblA-id=tblb.id
答案 3 :(得分:0)
一个FULL OUTER JOIN
会完成这个,但我会假设你有一个主表,你可以从包含所有记录开始,然后你真的更好的开始,然后做{{1 }}秒。例如,假设您有一个LEFT JOIN
表,其中包含所有ID(并假设它们是1-1关系而不是1-many),那么:
Items
答案 4 :(得分:0)
检查此查询
declare @tblA table (id varchar(50), price varchar(50))
insert into @tblA values ('001' ,'1.00'),('003','2.00')
declare @tblB table (id int, minPay varchar(50))
insert into @tblB values ('001' ,'10.00'),('004','20.00')
select
case when b.id IS null then a.id else b.id end id ,
case when b.minPay IS null then a.price else '0' end price,
isnull(minpay , 0) minpay
from @tblA a
full outer join @tblB b
on A.id = b.id