先看下我们表里的数据,从图中看到,现在表里有多行name一样的数据。
如何查询出这些重复的数据呢?我们可以用group by语句和having语句结合来查询。代码如图,group by name的意思是以name字段为分组,而having c > 1的意思是分组里的name的个数大于1的。
运行后的结果就是找出了这个重复的name。即所有的name有相同的个数大于1的都找出来了。
这些有重复name的数据,其它字段怎么查询出来呢?
有人说用where语句就行了,where name in('wenwen','sohu'),,代码如图
结果如图,这样确实可以查到。
但在查询前我们并不知道哪些name是有重复的。况且如果数据量大的话,相同的name就有可能有几百个,这个in语句就有得写了。
那怎么查询?可以用inner join联合查询语句。代码如图
运行后,得到正确的查询结果。
可以看到用联合查询,我们并不需要事先知道有哪些name是重复的,也不必担心有太多的重复数据。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!