LEFT / RIGHT joins

-- JOIN por defecto solo nos muestra valores que están relacionados
-- Si tenemos registros que no tienen elementos relacionados no salen
-- Si yo quiero que sí que salgan utilizo LEFT / RIGHT
-- Ejemplo: Todos los países que no tengan ciudades
SELECT country, city FROM country 
left join city on country.country_id=city.country_id
where city is null;

select country,city from city 
right join country on country.country_id=city.country_id;

-- Actores que no han trabajado en ninguna película
select * from actor left join film_actor on actor.actor_id=film_actor.actor_id
where actor.actor_id is null;

-- Los ejemplos anteriores solo funcionan si introducimos datos nuevos
-- Porque la BD de Sakila está cuadrada, no hay 'huecos'
INSERT INTO actor (first_name,last_name) values ('Ana','Pi')

https://www.w3schools.com/sql/sql_join_left.asp

Publicado por

Avatar del usuario

Juan Pablo Fuentes

Formador de programación y bases de datos