我创建了一个查询,我相信,无论如何,我都会返回表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