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);