LEFT JOIN, RIGHT JOIN
La revisió el 18:26, 8 feb 2022 per Joan (discussió | contribucions) (Es crea la pàgina amb «=LEFT JOIN= *https://www.sqltutorial.org/sql-left-join/ No tots els països tenen ciutats associades. La informació de les ciutats està en la taula ''location''. Si...».)
LEFT JOIN
No tots els països tenen ciutats associades. La informació de les ciutats està en la taula location. Si volem veure TOTS els països, i també les ciutats d'aquells països que en tenen, haurem de fer un LEFT JOIN on el country està en el cantó esquerre:
SELECT c.country_name, c.country_id, l.country_id, l.city FROM countries c LEFT JOIN locations l ON l.country_id = c.country_id; +--------------------------+------------+------------+---------------------+ | country_name | country_id | country_id | city | +--------------------------+------------+------------+---------------------+ | Argentina | AR | NULL | NULL | | Australia | AU | NULL | NULL | | Belgium | BE | NULL | NULL | | Brazil | BR | NULL | NULL | | Canada | CA | CA | Toronto | | Switzerland | CH | NULL | NULL | | China | CN | NULL | NULL | | Germany | DE | DE | Munich | | Denmark | DK | NULL | NULL | ...
Podem modificar la consulta per veure quins països no tenen cap ciutat:
SELECT c.country_name, c.country_id FROM countries c LEFT JOIN locations l ON l.country_id = c.country_id WHERE city IS NULL; +--------------+------------+ | country_name | country_id | +--------------+------------+ | Argentina | AR | | Australia | AU | | Belgium | BE | | Brazil | BR | | Switzerland | CH | ...
Podem fer un doble LEFT JOIN amb les taules regions, countries i locations:
SELECT r.region_name, c.country_name, l.street_address, l.city FROM regions r LEFT JOIN countries c ON c.region_id = r.region_id LEFT JOIN locations l ON l.country_id = c.country_id; +------------------------+--------------------------+------------------------------------------+---------------------+ | region_name | country_name | street_address | city | +------------------------+--------------------------+------------------------------------------+---------------------+ | Europe | Belgium | NULL | NULL | | Europe | Switzerland | NULL | NULL | | Europe | Germany | Schwanthalerstr. 7031 | Munich | | Europe | Denmark | NULL | NULL | | Europe | France | NULL | NULL | ...
Podria donar-se el cas de què hi haguessin regions que no tenen països, i aleshores també sortirien a la llista.
creat per Joan Quintana Compte, febrer 2022