に参加します取引で販売された金額を確認するには、次のクエリを使用します。MySQLは基本的に私はこのような構造を持っている原因と乗算
SELECT targets.id,SUM(deal_sales.amount_sold) AS amount_sold
FROM deal_sales
INNER JOIN deals ON deals.id = deal_sales.deal_id
INNER JOIN targets ON deals.target_id = targets.id
WHERE targets.approved = 1 AND targets.active = 1
GROUP BY targets.id
その私がチャネルで取引によって販売されている量を見つけ、チャネルによってフィルタリングする必要があるときにうまく働いて、問題がある:
SELECT targets.id,SUM(deal_sales.amount_sold) AS amount_sold
FROM deal_sales
INNER JOIN deals ON deals.id = deal_sales.deal_id
INNER JOIN targets ON deals.target_id = targets.id
**INNER JOIN channels_deals ON channels_deals.deal_id = deals.id**
WHERE targets.approved = 1 AND targets.active = 1
GROUP BY targets.id
私はチャンネルテーブルに参加する追加すると、AMOUNT_SOLDがあります取引が関係している各チャンネルが乗算されます。どうすればこの問題を回避できますか?
はルール番号1および3は例えば
が存在するには、ディールを?,修正 'を有し、多くのに属し' またはチャネル(S) 'に属していますか'? ?? – fdaines
とターゲットはどうですか?、取引はターゲットに属していますか? – fdaines