Estoy haciendo unas practicas con sql server y me surgio una duda.
Tengo dos tablas, la primera llamada usuario con dos campos (id_nombre y nombre) y la segunda llamada edades con campos id_nombre y edad.
Quiero hacer una consulta usando ambas tablas, de manera que me devuelva el nombre y edad de las personas cuya edad sea igual a 20.
Tengo los siguientes codigos:
Código
SELECT usuario.nombre, edades.edad FROM usuario, edades WHERE edades.edad = 20
Ese me devuelve TODOS los registros (con el campo edad con valor 20, aunque en la tabla original no fuese asi) y me repite todos los registros 3 veces. Podrian explicarme por que hace eso?
Si utilizo el siguiente codigo me da el mismo resultado que el anterior, solo que no lo repite:
Código
SELECT DISTINCT usuario.nombre, edades.edad FROM usuario, edades WHERE edades.edad = 20
Del libro que estoy leyendo saque lo siguiente:
Código
SELECT usuario.nombre, edades.edad FROM usuario, edades WHERE edades.edad = 20 AND usuario.id_nombre = edades.id_nombre
Podrian explicarme cual es la funcion de la condicion que viene despues del and? Y por que no es necesario el distinct?
Un saludo y gracias!