distinct是mysql去重复关键字。
表里所有数据的去重复
select
distinct comptemplate.*
from comptemplate
表里所有某个字段的数据去重复
select
distinct comptemplate.comptemplate_name
from comptemplate
distinct去重复的依据是从select到from里的所有字段,
也就是每一行的数据和所有的数据做对比,如果重复则去除掉。
多表关联的错误理解使用,想对comptemplate表的所有重复数据
去重,查出来的数据如下。
select
distinct comptemplate.*,tubetemplate.*
from comptemplate
left join extemplate_tube_relation on extemplate_tube_relation.comptemplate_id = comptemplate.comptemplate_id
left join tubetemplate on extemplate_tube_relation.tubetemplate_id = tubetemplate.tubetemplate_id
多表关联的正确理解使用,想对comptemplate表的所有重复数据
去重,查出来的数据如下。
select
distinct comptemplate.*
from comptemplate
left join extemplate_tube_relation on extemplate_tube_relation.comptemplate_id = comptemplate.comptemplate_id
left join tubetemplate on extemplate_tube_relation.tubetemplate_id = tubetemplate.tubetemplate_id
在select中多了tubetemplate.*,导致无法去重复comptemplate.*。
原因是因为distinct是对一行去重复,也就是select到from里的所有字段,
每一行的数据和所有的数据做对比,如果重复则去除掉。
如果表数据存在空格不一的情况,也是无法去重复的!
信息加载中,请等待
微信客服(速回)
微信客服(慢回)