mysql关于 inner join 数据重复问题
package表的id对应package_product表的package_id,并且两者是一对多的关系,今天想筛选出package表所有id存在于package_product表的记录,第一个想到的就是joinselect package.*,package_product.package_id from package join package_product on(pack.
·
package表的id对应package_product表的package_id,并且两者是一对多的关系,今天想筛选出package表所有id存在于package_product表的记录,第一个想到的就是join
select package.*,package_product.package_id from package join package_product
on(package.id=package_product.package_id);
但是有一个问题,数据会重复,比如package_product表有3个相同的package_id就会查找出3条相同的package表记录,
加上distinct好像也没用
所以,又想到了子查询,select * from package where id in(select distinct package_id from package_product),虽然写起来简单,但是这条语句太耗性能了,查找6条记录要好几秒,最后找到了合适的方法
select * from package join (select distinct package_id from package_product) as package_product on(package.id=package_product.package_id);
更多推荐
已为社区贡献2条内容
所有评论(0)