You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access数据库SQL查询:如何显示UnitID为0的产品关联数据

解决UnitID为0的记录无法显示的SQL写法

这问题我之前做项目时也碰到过,咱们先捋清楚原SQL的问题:你用的INNER JOIN只会返回两张表中UnitID完全匹配的记录——如果Product表的UnitID是0,但Unit表里没有这个ID值,这些记录就会被直接过滤掉,自然看不到。

要显示Product表中UnitID为0的记录,你需要把连接类型改成左连接(LEFT JOIN),让Product表作为主表,保留它的所有记录,即使Unit表没有对应的匹配项。修改后的SQL语句如下:

SELECT Unit.UnitID, Product.* 
FROM Product 
LEFT JOIN Unit ON Unit.UnitID = Product.UnitID

这样一来,Product里所有UnitID为0的记录都会被显示出来,只是Unit.UnitID列会显示为NULL(因为Unit表没有对应的行)。如果你希望这一列在没有匹配时直接显示Product的UnitID(也就是0),可以用COALESCE函数来处理,优化后的语句:

SELECT COALESCE(Unit.UnitID, Product.UnitID) AS UnitID, Product.* 
FROM Product 
LEFT JOIN Unit ON Unit.UnitID = Product.UnitID

COALESCE的作用是返回第一个非NULL的值,这样当Unit.UnitID为NULL时,就会显示Product.UnitID的数值啦。

内容的提问来源于stack exchange,提问作者narmafkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:41:01