mysql关于 inner join 数据重复问题

  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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值