使用空值加入查询

时间:2019-07-19 11:20:18

标签: mysql sql

我有这个查询

SELECT * FROM orders, products, suppliers 
WHERE product_id=products.id 
  AND `geleverd` = 1  
  AND supplier_id=suppliers.id

工作正常,除了当provider_id为NULL时,它不接这些。我需要这样,当供应商被填充时,它应该获得供应商名称,当它为NULL时,它也应该获得该行,因为在代码中,我进一步if supplier_id = NULL放置了文本

这是我的供应商数据库: enter image description here

这是我的订单数据库: enter image description here

因此无论供应商ID是否为NULL,我的查询都需要显示geleverd为1的所有内容

1 个答案:

答案 0 :(得分:0)

如果您还需要supplier_idnull时的供应商信息,则只需要满足OR条件。

您的查询将如下所示:

SELECT * 
FROM orders, products, suppliers 
WHERE product_id=products.id 
    AND `geleverd` = 1  
    AND (supplier_id=suppliers.id OR supplier_id IS NULL);