首页 > 解决方案 > 在 mySQL 中加入 4 个表并包含 NULL 值

问题描述

我正在尝试列出客户订购的每种产品的所有客户姓名,并包括没有订单的客户。此外,如果客户多次订购相同的产品,则只为该客户列出一次产品。

我已经设置了查询的开头,因此它显示了所有客户和订购的每个产品,但我似乎无法弄清楚如何添加具有 NULL 值的客户(意味着他们没有订购商品。)我知道左外连接应该以某种方式使用。这是我到目前为止所拥有的:

select distinct
c.customerName, p.productName
from
products p, customers c, orders o, orderDetails d
left join 

标签: mysqlselectouter-join

解决方案


当使用left join如下语法时:

select distinct
c.customerName, p.productName
from customers c
left join order o on c.id = o.customer_id
left join orderDetails d on o.id = d.order_id
left join products p on p.id = d.product_id AND
          p.productName = 'cow'

推荐阅读