mySQL 查询 LEFT OUTER JOIN 不显示 null

标签 mysql left-join

我正在尝试输出库存表中的所有行以及零件表中的描述。以下是表格:

库存表

Inventory Table

零件表

enter image description here

我想要的是从库存行中输出所有 SKU,这些行具有特定的 orderNumber 及其旁边的 SKU 描述。如果库存 SKU 与零件 SKU 不匹配,我希望将描述输出为 NULL。

这是我现有的查询:

SELECT * FROM inventory LEFT OUTER JOIN parts ON inventory.sku = parts.sku AND parts.description IS NULL WHERE orderID = $orderID

请帮忙。

最佳答案

您应该将 parts.description IS NULL 条件移至 where 子句,因为在连接右表上的行时,没有 null code> 在其字段上

SELECT  *
FROM    inventory
LEFT OUTER JOIN
        parts
ON      inventory.sku = parts.sku
WHERE   orderID = $orderID AND
        parts.description IS NULL 

编辑

更好地阅读您的要求,似乎您想要左表中的所有行,无论它们是否在右表中匹配。如果是这样的话,您就可以完全摆脱这种情况

SELECT  *
FROM    inventory
LEFT OUTER JOIN
        parts
ON      inventory.sku = parts.sku
WHERE   orderID = $orderID

关于mySQL 查询 LEFT OUTER JOIN 不显示 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029385/

相关文章:

python - Django 1.5 在持久化上传文件时引发 UnicodeDecodeError

mysql - 与另一个表连接后对 MySQL 结果进行排名,也按条件过滤它们

MySQL 左连接?

Php mysql left join no result 问题

sql - 使用逗号 (,) 从多个表中左连接或选择

MySQL查询总和结果除以行数(平均)

mysql - 如果这样记录得到的值如何取小于0的值?

php - 单击按钮时方法发布不起作用

MySQL 连接 - 数据不在第二个表中

mysql - Left JOIN 更快还是 Inner Join 更快?