我創建了一個查詢,我相信,無論如何,我都會返回表1中的所有電子郵件地址。左連接邏輯不如預期
如果我去SELECT COUNT(email), COUNT(DISTINCT email) contacts.sid208
我得到心目中200000 175000.
有了這個,用左聯接從下面的查詢結果的電子郵件的數量應該是一樣的沒有?
SELECT
COUNT(email), COUNT(DISTINCT email)
FROM
(SELECT
co.email,
env.env_medium,
CAST(MIN(co.created) AS DATE) AS first_contact,
MIN(CASE
WHEN my.my_id = 581 THEN my.data
END) AS Created,
MIN(CASE
WHEN my.my_id = 3347 THEN my.data
END) AS Upgraded
FROM
contacts.sid208 co
LEFT JOIN contacts.my208 my ON co.id = my.eid
LEFT JOIN contacts.env208 env ON env.eid = co.id
WHERE
my_id = 581 OR my_id = 3347
GROUP BY email) b1
但這裏的結果,如果我堅持的東西相稱,是150000,而150000
我希望的結果是175000.
我LEFT JOIN的理解是,從通訊錄中的所有記錄.sid208將被保留,無論它們是否出現在my208或env208中。
我的理解是否有缺陷?希望我的問題對民間人士有意義,如果有更多的信息可以補充,讓我的問題更清楚地告訴我。
什麼表有字段,my_id? – 2014-09-24 16:09:19
對不起,my208有這個字段my_id – 2014-09-24 16:58:21