原来的子查询
select count(*) as tp_count from sdb_b2c_orders where pay_status='1' and createtime>1413533130 and area_code in (1030,1031,1032,1033) and member_id in (select member_id from sdb_invite_invite where in_member_id=14273 or in_member_id=13742 or in_member_id=14299) limit 1
执行结果是22
使用连接查询代替上面的子查询
select count(*) as tp_count from sdb_b2c_orders as bo inner join sdb_invite_invite as ii on bo.member_id=ii.in_member_id where bo.pay_status='1' and bo.area_code in (1030,1031,1032,1033) and bo.createtime>1413533130 and ii.in_member_id in (14273,13742,14299)
执行结果却是131
回复内容: 原来的子查询
select count(*) as tp_count from sdb_b2c_orders where pay_status='1' and createtime>1413533130 and area_code in (1030,1031,1032,1033) and member_id in (select member_id from sdb_invite_invite where in_member_id=14273 or in_member_id=13742 or in_member_id=14299) limit 1
执行结果是22
使用连接查询代替上面的子查询
select count(*) as tp_count from sdb_b2c_orders as bo inner join sdb_invite_invite as ii on bo.member_id=ii.in_member_id where bo.pay_status='1' and bo.area_code in (1030,1031,1032,1033) and bo.createtime>1413533130 and ii.in_member_id in (14273,13742,14299)
执行结果却是131
sdb_invite_invite.in_member_id记录有重复