簡體   English   中英

在子查詢中使用聯接?

[英]Using a join within a sub query?

以下查詢將返回所有欠款超過50的affiliate_id

        SELECT
            t1.affiliate_id
        FROM
        (
            SELECT affiliate_id, SUM(payout) AS payout_total
            FROM exp_cdwd_aff_purchases
            GROUP BY affiliate_id
        ) t1
        LEFT JOIN
        (
            SELECT affiliate_id, SUM(amount_paid) AS amount_paid_total
            FROM exp_cdwd_aff_payments
            GROUP BY affiliate_id
        ) t2
            ON t1.affiliate_id = t2.affiliate_id
        WHERE t1.payout_total > COALESCE(t2.amount_paid_total, 0) + 50

我還需要為表exp_member_data每個affiliate_id返回一個電子郵件地址。 可以針對member_id引用affiliate_id

我曾以為以下方法可能有效,但事實並非如此。 誰能解釋我如何得到這個結果?

        SELECT
            t1.affiliate_id, t1.m_field_id_26
        FROM
        (
            SELECT af.affiliate_id, SUM(af.payout) AS payout_total, md.m_field_id_26
            FROM exp_cdwd_aff_purchasesAS af
            LEFT JOIN exp_member_data AS md.member_id = af.affiliate_id
            GROUP BY affiliate_id
        ) t1
        LEFT JOIN
        (
            SELECT affiliate_id, SUM(amount_paid) AS amount_paid_total
            FROM exp_cdwd_aff_payments
            GROUP BY affiliate_id
        ) t2
            ON t1.affiliate_id = t2.affiliate_id
        WHERE t1.payout_total > COALESCE(t2.amount_paid_total, 0) + 50

如果我正確地閱讀了您的查詢,那么最簡單的方法就是在末尾添加另一個連接以引入電子郵件地址。 像這樣:

SELECT
    t1.affiliate_id,
    COALESCE(t3.m_field_id_26, 'email is NA') AS m_field_id_26
FROM
(
    SELECT affiliate_id, SUM(payout) AS payout_total
    FROM exp_cdwd_aff_purchases
    GROUP BY affiliate_id
) t1
LEFT JOIN
(
    SELECT affiliate_id, SUM(amount_paid) AS amount_paid_total
    FROM exp_cdwd_aff_payments
    GROUP BY affiliate_id
) t2
    ON t1.affiliate_id = t2.affiliate_id
LEFT JOIN exp_member_data t3
    ON t1.affiliate_id = t3.member_id
WHERE t1.payout_total > COALESCE(t2.amount_paid_total, 0) + 50

正如您目前所擁有的那樣,在聚合查詢中進行聯接可能並不理想,因為該子查詢的存在是為了統計事物,而不包括電子郵件地址信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM