这在 SQL 中是如何工作的
sum(o.product_name='Bread') > 0
,
例如,如果订单表 (o) 具有 Product_name 列,使得条目为 Bread,则条件将
o.product_name='Bread'
将 1 返回给 sum 函数,然后 sum 函数会将所有这些相加?
问题是:有2桌顾客,下单。查找购买面包和牛奶但不购买鸡蛋的顾客
Select c.customer_id , c.customer_name
FROM customers as c
left join
orders as o
on c.customer_id = o.customer_id
group by c.customer_id , c.customer_name
having
sum(o.product_name='Bread') > 0
and sum(o.product_name='Milk') > 0
and sum(o.product_name='Eggs') = 0
order by c.customer_name
Select c.customer_id , c.customer_name
FROM customers as c
left join
orders as o
on c.customer_id = o.customer_id
group by c.customer_id , c.customer_name
having
sum(o.product_name='Bread') > 0
and sum(o.product_name='Milk') > 0
and sum(o.product_name='Eggs') = 0
order by c.customer_name
sum
函数只是统计每个客户的product_name分别为牛奶、面包、鸡蛋的订单记录总数