Vamos a verlo con un ejemplo. Utilizaré la base de datos World. Supongamos que quiero saber qué paises tienen ciudades que superen los 7.000.000 de habitantes:
mysql> use world
Database changed
mysql> SELECT country.name FROM country INNER JOIN city
-> ON CountryCode=Code WHERE city.population>7000000;
+--------------------+
| name |
+--------------------+
| Brazil |
| United Kingdom |
| Indonesia |
| India |
| India |
| Japan |
| China |
| China |
| South Korea |
| Mexico |
| Pakistan |
| Turkey |
| Russian Federation |
| United States |
+--------------------+
14 rows in set (0.00 sec)
Vemos como en el resultado aparecen paises repetidos (China, India...). Esto se debe a que por ejemplo hay dos ciudades chinas que superan esa cifra, y ese es el motivo de que este país aparezca dos veces (una por cada ciudad que cumpla con la condición population > 7000000).
Para evitar estas filas duplicadas usaremos DISTINCT. Veamos:
mysql> select DISTINCT country.name from country INNER JOIN city
-> ON CountryCode=Code where city.population>7000000;
+--------------------+
| name |
+--------------------+
| Brazil |
| United Kingdom |
| Indonesia |
| India |
| Japan |
| China |
| South Korea |
| Mexico |
| Pakistan |
| Turkey |
| Russian Federation |
| United States |
+--------------------+
12 rows in set (0.00 sec)
Así de simple ;-)
