在MySQL中,一般使用兩個(gè)表連接查詢的方式來(lái)查詢數(shù)據(jù),但是在實(shí)際使用中,往往會(huì)遇到需要去重的情況。下面介紹兩種不同的方法解決此類問(wèn)題。
方法一:
SELECT DISTINCT table1.column1,table2.column2 FROM table1 INNER JOIN table2 ON table1.key = table2.key;
這種方式使用了DISTINCT關(guān)鍵字,能夠去除結(jié)果集中重復(fù)的行。但是需要注意的是,DISTINCT會(huì)把所有返回的列都拿來(lái)比對(duì)判斷是否相同,因此如果數(shù)據(jù)量很大的話,這種方式可能效率較低。
方法二:
SELECT table1.column1,table2.column2 FROM table1 INNER JOIN table2 ON table1.key = table2.key GROUP BY table1.column1,table2.column2;
這種方式使用了GROUP BY關(guān)鍵字,根據(jù)查詢的列進(jìn)行分組,然后篩選出每組中第一條數(shù)據(jù)。因此相比第一種方法,可以有效提高查詢效率。但是需要注意的是,如果要篩選出每組中除第一條數(shù)據(jù)以外的其他數(shù)據(jù),那么就需要用到其他的技巧了。