sql语句之distinct去重
⾸先给⼤家展⽰我要去重的内容(注:这是关联商品表和规格表查出来的内容,但是实际只需要其中的唯⼀商品页⾯展⽰即可)
关于去重,⾸先我想到的是distinct关键字
1,作⽤于单列去重
SELECT distinct(wg.id)
FROM
ws_goods wg
LEFT JOIN ws_good_price gp dsId = wg.id
WHERE
dsPlateForm = 1
dsUpsales = 3
unt > 0
ORDER BY
wg.`order` ASC
效果是显著的,但是不能显⽰其他列的内容,这就看着有些揪⼼了~,于是,我想出了第⼆种⽅案
2,作⽤于多列去重
SELECT distinct wg.iginPrice,gp.price
FROM
ws_goods wg
LEFT JOIN ws_good_price gp dsId = wg.id
WHERE
dsPlateForm = 1
dsUpsales = 3
unt > 0
ORDER BY
wg.`order` ASC
select distinct from效果如下
在这⾥看上去好像跟没有写distinct查询出来的记录⼀⽑⼀样,实际上它是根据所有的字段去重的,如果这⾥有两条⼀样的数据,那你就可以看到效果啦~~
基于我这⾥数据的特殊性,貌似distinct不能完全满⾜我的需求:(
不如试试这个
select distinct(wg.id),wg.iginPrice,gp.price
from ws_goods wg
LEFT JOIN ws_good_price gp dsId = wg.id
WHERE
dsPlateForm = 1
dsUpsales = 3
unt > 0
GROUP BY wg.id
ORDER BY
wg.`order` ASC
简单⼀步操作就ok啦~~~希望能够帮助到你:)