我有二个表,结构如果下a 表
id,sku,name,statusa表有2776 条记录b 表product_id ,p_num,p_name,status
B表有49,475多条记录,很多是重复我用了left join 查询两个表
大概如下select b.p_name,a.id,count(DISTINCT b.p_num) from a left join b on a.sku=b.p_num where b.status=1 group by p_num按正常来说left join 最少有2776 条记录啊,可是结果才2668 。这是为什么呢??
id,sku,name,statusa表有2776 条记录b 表product_id ,p_num,p_name,status
B表有49,475多条记录,很多是重复我用了left join 查询两个表
大概如下select b.p_name,a.id,count(DISTINCT b.p_num) from a left join b on a.sku=b.p_num where b.status=1 group by p_num按正常来说left join 最少有2776 条记录啊,可是结果才2668 。这是为什么呢??
from b
where b.status = 1
另外,你的语句中 group by p_num,不是以 a 表为准,所以结果不一定是 a 中的数量了。
没办法group by 啊我要去掉重复的,又想得到其他的字段,不知道有没有其他好的办法
"
如果你要查的语句没有错话,你应该修改为如下:
select b.p_name,a.id,count(DISTINCT b.p_num) from a left outer join b on a.sku=b.p_num where b.status=1 group by p_num在"left join"里加入" outer ",这样才是对的.