JOIN

De FFAWiki
La revisió el 18:43, 30 gen 2021 per Mayola (discussió | contribucions)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)
Definició:
Ajunta taules de diferentes maneres: Left Join, Left Outer Join, Inner Join, Right Join, Right Outer Join, Full Join, Full Outer Join.
Exemple: (Base de dades sanitat)
Mostra per els noms de l'hospital els nomes de totes les seves sales
SELECT hospital.nom,sala.nom FROM sala INNER JOIN hospital ON sala.hospital_cod=hospital.hospital_cod;
Join-ex.jpeg













Imatge de Tots els Joins
Join.png
























Inner Join

Definició:
Uneix dos (pots fer de dos en dos) taules pels camps que tenen iguals (tants iguals com vulguis), i nomes s'utilitzen els tu especifiques en el SELECT.
Exemple: (Base de dades toctag)
Mostra el nom del cicle (c) i el nom de la família professional (f) on la id de la família coincideixi amb la id de la manilia de cicle
SELECT c.descripcio,f.descripcio FROM cicle_formatiu c INNER JOIN familia_professional f ON c.familia_id=f.familia_id;
Inner-Join-ex.jpeg













NATURAL Join

Definició:
Substitueix l'ON del INER JOIN fen la compraració per si sol dels camps que hi han en comu (perque son iguals).
Exemple: (Base de dades toctag)
Mostra la relació entre els alumnes i les axpulsions.
SELECT * FROM alumnes NATURAL JOIN expulsions;
NATURAL-join-ex.jpeg


















Right Join

Definició:
Agafa la taula de la dreta i els camps en comú
Exemple: (Base de dades toctag)
Mostra el titol de la pelicula i si esta llogada o no.
SELECT pelicula.titol,(CASE count(prestec.codipeli) WHEN 0 THEN 'No Llogada' ELSE 'Llogada' END) as prestec FROM prestec RIGHT JOIN pelicula ON prestec.codipeli=pelicula.codipeli GROUP BY pelicula.titol;
Right-Join-ex.jpeg



















Left Join

Definició:
Agafa la taula de la esquerra i els camps en comú
Exemple: (Base de dades toctag)
Mostra el titol de la pelicula i si esta llogada o no.
SELECT titol FROM pelicula p LEFT JOIN prestec t ON p.codipeli=t.codipeli WHERE t.codipeli IS NULL;
Left-Join-is-NULL-ex.jpeg























Right Join is NULL

Definició:
Agafa la taula de la dreta pero no els camps en comú
Exemple: (Base de dades toctag)
Mostra les pelicules no llogades
SELECT titol FROM prestec t RIGHT JOIN pelicula p ON p.codipeli=t.codipeli WHERE t.codipeli IS NULL;
Right-Join-is-NULL-ex.jpeg























Left Join is NULL

Definició:
Agafa la taula de la esquerra pero no els camps en comú
Exemple: (Base de dades toctag)
Mostra les pelicules no llogades
SELECT titol FROM pelicula p LEFT JOIN prestec t ON p.codipeli=t.codipeli WHERE t.codipeli IS NULL;
Left-Join-is-NULL-ex.jpeg























Full Join

Definició:
Agafa totes les taules
Exemple: (Base de dades toctag)
Mostra les dos taules, si esta a les dos et fa una linea amb les dades de les dos taules, i si esta només en una mostra una linea amb les dades d'aquella unica taula en la qual esta. (El LIMIT es per que no surti una gran llista)
SELECT * FROM expulsions ex FULL JOIN entrades_tard et ON ex.dni=et.dni LIMIT 15;
Full-Join-ex.jpeg