..


Enllaços patrocinats

El contrari d'un INNER JOIN o per obtenir els registres no coincideixen

Article escrit per Max Bossi

Qui sap quins són els coneixements de SQL és la unió. A les nostres guies i altres articles que expliquen com la unió i com es poden crear relacions entre les diferents taules d'una base de dades.

El requisit més comú és satisfeta per l'instrument de combinació per buscar coincidències entre dues taules, en aquest cas assisteix a la clàusula INNER JOIN que localitza amb precisió i retorna els camps que satisfan la correspondència buscar d'aquí a dos o més taules relacionades en la unió.

Molt menys intuïtiva és la necessitat d'identificar els camps que d'altra manera no tenen un donant compatible dins de la unió.

Vegem un exemple.
Suposem que vostè ha de manejar una base de dades de comerç electrònic es compon de dues taules:

  • clients (que conté les dades mestres de clients)
  • ordres (que conté les comandes realitzades pels clients)
Ara bé, suposem que voleu extreure dues llistes diferents de clients: 1) una llista de clients que ja han realitzat una comanda, 2) la llista de clients que encara no han comprat res.

Per satisfer el primer requisit, per descomptat, és molt senzill:

 



 SELECCIONAR CUSTOMER.FIRST, Cliente.Ventas







 FROM clients







 Les comandes INNER JOIN







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC Cliente.Ventas

 
i fins ara no hi ha problema.

Però com podem fer per revertir el resultat? Bé ... En primer lloc, no utilitzar un LEFT JOIN, INNER JOIN, però per tal de buscar un partit no és completa, sinó parcial, on, però, els resultats de la taula de l'esquerra es va tornar de totes maneres.
Sense que això ens va a buscar (amb la clàusula WHERE) registres que falten (és a dir, que no es troben en l'informe) i després identificat com NULL (en SQL NULL es defineix com una mena de "valor especial" que identifica l'absència de valor ..)

Vegem el codi:

 



 SELECCIONAR CUSTOMER.FIRST, Cliente.Ventas







 FROM clients







 LEFT JOIN Comandes







 ON = clienti.id ordini.id_cliente







 ON ESTÀ NULL ordini.id_cliente







 ORDER BY ASC Cliente.Ventas

 
El resultat és, de fet, la llista de noms de clients que mai han comprat res.

A la mateixa categoria ...
E-Learning
MS Access (Curs) MS Access (Curs)
Aprendre a crear i gestionar bases de dades fàcil i ràpidament. A partir de 29 €.
MySQL (Curs) MySQL (Curs)
Gestió de base de dades de codi obert. A partir de 39 €.
SQL i bases de dades (curs) SQL i bases de dades (curs)
Creació i gestió de bases de dades relacionals. A partir de 39 €.
Enllaços patrocinats