JOIN: diferència entre les revisions
De FFAWiki
(Es crea la pàgina amb «: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...».) |
Cap resum de modificació |
||
Línia 147: | Línia 147: | ||
<br> | <br> | ||
=== | ===Left Join=== | ||
:Definició: | :Definició: | ||
Línia 157: | Línia 157: | ||
::Mostra el titol de la pelicula i si esta llogada o no. | ::Mostra el titol de la pelicula i si esta llogada o no. | ||
:::SELECT | :::SELECT titol FROM pelicula p LEFT JOIN prestec t ON p.codipeli=t.codipeli WHERE t.codipeli IS NULL; | ||
[[Fitxer:Left-Join-is-NULL-ex.jpeg|esquerra|800px|]] | [[Fitxer:Left-Join-is-NULL-ex.jpeg|esquerra|800px|]] | ||
Línia 221: | Línia 221: | ||
<br> | <br> | ||
=== | ===Left Join is NULL=== | ||
:Definició: | :Definició: |
Revisió de 18:43, 30 gen 2021
- 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;
- Imatge de Tots els Joins
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;
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;
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;
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;
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;
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;
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;