Mysql 为什么内部联接导致查询只显示非空列的结果?

Mysql 为什么内部联接导致查询只显示非空列的结果?,mysql,Mysql,我正在运行下面的查询,它运行得很好 选择 库存零件名称, 将*计算为QTY可用, SumShippings.item_成本作为总价值, 最低库存量 从…起 库存商品 内部连接库存\u物料上的库存\u零件。库存\u零件\u id=库存\u零件.id 装运时内部联接装运。id=库存\u项目。装运\u id 内部加入库存库存库存库存警报。库存库存零件警报id=库存项目。库存零件警报id 哪里 库存商品。状态为空 和库存项目。当前库存id=1 按库存零件编号分组 因此,如果我取消注释这两个注释行是从另一

我正在运行下面的查询,它运行得很好

选择 库存零件名称, 将*计算为QTY可用, SumShippings.item_成本作为总价值, 最低库存量 从…起 库存商品 内部连接库存\u物料上的库存\u零件。库存\u零件\u id=库存\u零件.id 装运时内部联接装运。id=库存\u项目。装运\u id 内部加入库存库存库存库存警报。库存库存零件警报id=库存项目。库存零件警报id 哪里 库存商品。状态为空 和库存项目。当前库存id=1 按库存零件编号分组 因此,如果我取消注释这两个注释行是从另一个表获取信息的连接,查询结果将被过滤,只显示stock_alerts.minimum不为null的行

为什么会这样?我需要列为NULL的所有结果事件。

内部联接所做的是输出行结果,其中该单元格上没有任何表具有NULL值。换句话说,W3学校:

“内部联接”关键字选择在中具有匹配值的记录 两张桌子

尝试使用FULL OUTER join来获取所有记录,即使其中一个表上有空值。请参见上的说明

编辑:


我不知道你的一个标签是MySQL。您有一篇文章解释了如何在MySQL中模拟完整的外部联接

内部联接将在进行等于比较时忽略空值,我建议使用IS DISTINCT by操作符


尝试左连接而不是内部连接MySQL不支持完全外部连接。@anderlaini:MySQL不支持外部连接。左连接和左外连接在mysql中是相同的。
stock_alerts.stock_part_id <=> stock_items.stock_part_id