Amiguitos por mas que he leído del tema aun no entiendo para que carajo me sirve un JOIN (left o right).De lo que poco que entiendo ¿No afectarla eso a un modelo que ya está correctamente normalizado?
¿Es mussho pedir si me dan una explicación con peras y manzanas para dummies ( AKA yo) sobre cual serìa la utilidad de estas instrucciones?
Gracias
Los Joins se utilizan precisamente en un modelo normalizado.
Imagínate que tenemos la tabla de temas de Capa9. Esas tablas tiene los temas y en un campito el
código del usuario que los creó.
¿Cómo podemos saber el nombre del usuario que creó el tema? Pues relacionando con un join las tablas
tema <->
usuario. Así, el tema dice que lo creó el usuario con código
10349, y la tabla de usuarios nos dice que el usuario
10349 es
EITSAEB.
Código:
select nombre_usuario
from usuario
left join temas ON (usuario.codigo_usuario = tema.codigo_usuario)
where tema.nombre_tema = "duda con join".
¿Y por qué no poner derecho el nombre del usuario en la tabla de temas, si con eso nos ahorramos el hacer el join?
Imagínate que ponemos el nombre del usuario en la tabla de temas. Luego, el usuario quiere cambiarse de nombre. Tendríamos que modificar TOOOODA la tabla de tema para cambiar el nombre.
En cambio, si la tabla está normalizada pues cambiamos el nombre el la tabla de usuarios y listo.
Hay casos excepcionales en que por un tema de rendimiento no te queda otra que desnormalizar para no hacer joins. No es recomendable pero hay veces en que no te queda otra.