First, you should follow a simple rule: never use commas in the join
clause. Explicit join
syntax is much more powerful. And, it has been around for a long, long time.
The join
you want is a left join
. It keeps all rows in the first table, regardless of whether or not there are matches in the second table. The columns in the second table are given NULL
values when there is no match. To convert the NULL
to a 0
, you can use the ANSI standard function coalesce()
:
select A.orderNo, coalesce(B.Price, 0) as Price
from A left join
B
on A.ProdID = B.ProdID;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…