首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >left join where为null并且count() = 0?

left join where为null并且count() = 0?
EN

Stack Overflow用户
提问于 2017-06-03 00:07:42
回答 3查看 481关注 0票数 0

我有一个桌子卖家,广告和销售。

由于我的公司的工作方式中的一个怪癖,销售的销售者可以改变为另一个销售者(我们称之为孤立销售),但是销售表被更新以反映来自新销售者的新的advert.id。

我想计算一下只有孤立销售的用户的孤立销售的价格。

在有价格之前,我甚至不能创建一个只有孤立销售的用户列表。

我正在尝试与where is null做一个左连接,这样我就可以得到那些没有销售额的广告,然后一个having count() =0,我就可以得到那些没有销售额的用户。

代码语言:javascript
复制
SELECT seller.id
FROM seller
JOIN advert ON advert.seller_id = seller.id
JOIN sale orphan ON advert.id = orphan.advert_id
JOIN sale accomplished_sale ON advert.id = accomplished_sale.advert_id
WHERE orphan.id IS NULL
GROUP BY seller.id
HAVING count(accomplished_sale.id) = 0

然而,我得到的是每一个卖家,有至少一个销售没有销售,但有其他广告与销售。

假设advert-sale关系是n->1,我猜一个普通的join只是一个左join,对吧?同样的事情也发生在卖家-广告上。

我做错了什么?有什么想法吗?

EN

Stack Overflow用户

发布于 2017-06-03 00:18:51

如果您需要在一个(或多个)表上使用左连接,则必须将其命名为

代码语言:javascript
复制
SELECT seller.id
FROM seller
INNER JOIN advert ON advert.seller_id = seller.id
LEFT JOIN sale orphan ON advert.id = orphan.advert_id
INNER JOIN sale accomplished_sale ON advert.id = accomplished_sale.advert_id
WHERE orphan.id IS NULL
GROUP BY seller.id
HAVING ifnull(count(accomplished_sale.id), 0)  = 0
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44333206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档