0
有點新的SQL,我有一個PostgreSQL的查詢,這是我在Postgres的9.x中的理解是,在默認情況下連接是INNER JOIN:將此查詢看作交集中元素的數量是否正確?
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的數量 - 所以是正確的路要走呢?
這裏是我的新查詢:
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';
其實,我正在計算那次促銷產生的用戶數量 - 那麼正確的方式呢? – Nona
真的,我試圖計算訂閱用戶或實際促銷活動的數量導致訂閱 – Nona
嗯,我不知道您的業務邏輯,但似乎您正在尋找'count(distinct users.id) '。 如果你不用'count()'執行你的查詢,你可以看看結果並從那裏調整它。您可能還對[分組](http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-GROUPBY)感興趣。 – BenderBoy