首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将此查询视为交叉点中的元素计数是否正确?

将此查询视为交叉点中的元素计数是否正确?
EN

Stack Overflow用户
提问于 2016-03-04 10:04:01
回答 1查看 45关注 0票数 0

我对SQL有点陌生,我有一个Postgresql查询,我在Postgres 9.x中的理解是,默认情况下连接是内部连接:

代码语言:javascript
复制
select count(*)
from physical_promotions
JOIN subscriptions ON physical_promotions.product_id = subscriptions.id
JOIN users on subscriptions.user_id = users.id
JOIN referrals ON referrals.referred_user_id = users.id
where physical_promotions.coupon_id = '55';

将其解释为coupon_id为55的所有物理促销的计数与相应的订阅相交,与相应的推荐相交,与相应的用户相交,是否正确?

编辑:

另外,我正在尝试计算physical_promotions的数量-所以这是正确的方法吗?

下面是我的新查询:

代码语言:javascript
复制
select count(distinct physical_promotions.id)
    from physical_promotions
    JOIN subscriptions ON physical_promotions.product_id = subscriptions.id
    JOIN users on subscriptions.user_id = users.id
    JOIN referrals ON referrals.referred_user_id = users.id
    where physical_promotions.coupon_id = '55';
EN

回答 1

Stack Overflow用户

发布于 2016-03-04 10:26:55

是的,事实上,你也可以写同样的东西如下:

代码语言:javascript
复制
SELECT count(*)
FROM physical_promotions,
    subscriptions,
    users,
    referrals
WHERE physical_promotions.product_id = subscriptions.id
    AND subscriptions.user_id = users.id
    AND referrals.referred_user_id = users.id
    AND physical_promotions.coupon_id = 55

为了清楚起见,我可能会建议显式指定连接类型。

另请注意,您可能不一定会获得独特的促销数量。例如,如果一个促销有两个订阅,则您的结果将包含该促销(以及用户和推荐)两次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35786707

复制
相关文章

相似问题

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