mySQL查询LEFT OUTER JOIN不显示null

时间:2017-05-17 15:42:38

标签: mysql left-join

我正在尝试使用parts表中的描述输出inventory表中的所有行。以下是表格:

库存表

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

请帮忙。

1 个答案:

答案 0 :(得分:1)

您应该将parts.description IS NULL条件移动到where子句,因为在连接右表中的任何行时,其字段上都有null

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