mysql關於 inner join 資料重複問題

2021-08-17 15:17:26 字數 662 閱讀 4628

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

關於mysql查詢 關於MYSQL 查詢

你想要的是這種效果嗎?建立表city cost create table city cost id int primary key auto increment,cost time date,city varchar 20 money int auto increment 1 插入資料 insert...

關於mysql索引 關於mysql的索引

我們先來了解mysql索引的概念 索引是一種特殊的檔案,他們包含著對資料表裡所有記錄的引用指標。更通俗地說,資料庫索引好比是是一本書前面的目錄,能加快資料庫的查詢速度,我們有了相應的索引後,資料庫會直接在索引中查詢符合條件的選項。索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順...

mysql關於日期 關於mysql日期的一些例子

mysql中的月份計算 減少乙個月,比如 原來的subtime 2006 10 22 12 22 22 減少後變成 2006 9 22 12 22 22 update message set subtime date sub subtime,interval 1 month 增加乙個月 update...