如何通过SQL JOIN关联产品、价格与货币表获取货币名称?
关联三张表获取产品价格及对应货币名称
直接通过多表JOIN就能完成需求,以下是完整的查询语句:
SELECT p.LogicalRef AS 产品ID, pr.Price AS 价格, c.CurName AS 货币名称, c.CurCode AS 货币代码 FROM @Products p JOIN @Prices pr ON p.LogicalRef = pr.CardRef JOIN @Currency c ON pr.Currency = c.CurType;
关联逻辑说明
- 第一步通过
JOIN关联产品表和价格表,用LogicalRef和CardRef匹配,这部分你已经实现; - 第二步再用一个
JOIN把价格表和货币表关联,匹配条件是价格表的Currency字段等于货币表的CurType字段,这样就能直接取出对应的货币名称CurName。
如果担心存在价格表有货币值但货币表无对应记录的情况,换成LEFT JOIN就能保留所有价格数据,未匹配到的货币信息会显示为NULL,也可以用ISNULL设置默认值:
SELECT p.LogicalRef AS 产品ID, pr.Price AS 价格, ISNULL(c.CurName, '未定义货币') AS 货币名称, c.CurCode AS 货币代码 FROM @Products p JOIN @Prices pr ON p.LogicalRef = pr.CardRef LEFT JOIN @Currency c ON pr.Currency = c.CurType;
内容的提问来源于stack exchange,提问作者oliver davidson
相关产品推荐
相关产品推荐

