..


Sponsede Lenker

Det motsatte av en INNER JOIN eller å få postene stemmer ikke

Artikkel skrevet av Max Bossi

Hvem vet hva kunnskap om SQL er JOIN. I våre guider og andre artikler forklarte vi hvordan BLI MEDLEM og hvordan du kan skape relasjoner mellom ulike tabeller i en database.

Den vanligste er oppfylt av instrumentet bli med å finne matcher mellom to tabeller, i hvilket tilfelle bistår INNER JOIN klausul som presist lokaliserer og returnerer feltene som tilfredsstiller korrespondansen søkt innen to eller flere tabeller involvert i JOIN.

Mye mindre intuitive er behovet for å identifisere områder som ellers ikke har en kamp i JOIN.

La oss ta et eksempel.
Anta at du har for å administrere en database med e-handel består av bare to tabeller:

  • kunder (som inneholder stamdata av kunder)
  • ordre (som inneholder pålegg gitt av kunder)
Nå Anta at du vil trekke ut to forskjellige lister over kunder: 1) en liste over kunder som allerede har plassert en ordre, 2) en liste over kunder som ennå ikke har kjøpt noe.

For å tilfredsstille det første kravet, selvfølgelig, er ganske enkelt:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 Fra kunder







 INNER JOIN Orders







 ON = clienti.id ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
og så langt ikke noe problem.

Men hvordan kan vi gjøre for å reversere resultatet? Vel ... Først må du ikke bruke en LEFT JOIN, INNER JOIN, men sikte på å finne en kamp er ikke full, men delvis der, derimot, er resultatene fra venstre bordet returnert uansett.
Uten dette vil vi søke etter (med WHERE klausulen) missing records (dvs. ikke finnes i rapporten), og deretter identifisert som NULL (i SQL NULL er definert som en slags "spesiell verdi" som identifiserer en fravær av verdi ..)

La oss se koden:

 



 SELECT CUSTOMER.FIRST, CUSTOMER.LAST







 Fra kunder







 LEFT JOIN Orders







 ON = clienti.id ordini.id_cliente







 HVOR ER NULL ordini.id_cliente







 ORDER BY ASC CUSTOMER.LAST

 
Resultatet er faktisk listen med navn på kunder som aldri har kjøpt noe.

I samme kategori ...
E-læring
MS Access (avansert) MS Access (avansert)
Lær å opprette og administrere databaser raskt og enkelt. Starter fra 29 €.
MySQL (Course) MySQL (Course)
Forvaltning av open-source database. Starter fra 39 €.
SQL og Database (Course) SQL og Database (Course)
Opprette og administrere relasjonsdatabaser. Starter fra 39 €.
Sponsede Lenker