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 ;-)