..
Hvem ved, hvad viden om SQL er JOIN. I vores guider og andre artikler, vi forklarede, hvordan JOIN, og hvordan du kan skabe relationer mellem forskellige tabeller i en database.
Den mest almindelige krav opfyldes ved instrumentet JOIN til at finde et match mellem to tabeller, i hvilket tilfælde redder de INNER JOIN bestemmelse, der præcist lokaliserer og returnerer de felter, der opfylder korrespondance søges inden for to eller flere berørte tabeller i JOIN.
Meget mindre intuitiv at det modsatte er behovet for at identificere de felter, der ikke har en match i JOIN.
Lad os tage et eksempel.
Antag, at du vil administrere en database af en e-handel kun består af to tabeller:
For at opfylde det første krav, selvfølgelig, er ganske enkel:
SELECT CUSTOMER.FIRST, CUSTOMER.LAST FRA kunder INNER JOIN Ordrer ON = clienti.id ordini.id_cliente ORDER BY ASC CUSTOMER.LASTog indtil videre ikke noget problem.
Men hvordan kan vi gøre for at vende resultatet?
Tja ...
Først, skal du ikke bruge en INNER JOIN, men en LEFT JOIN til at finde en kamp fuld, men ikke delvist, hvor det dog er resultaterne fra den venstre tabel tilbage alligevel.
Uden dette vil vi se (ved hjælp af WHErE) at registrene mangler (dvs. ikke fundet i rapporten) derefter identificeret som NULL (i SQL NULL er defineret som en slags "særlig værdi", der identificerer et fravær af værdi ..)
Lad os se koden:
SELECT CUSTOMER.FIRST, CUSTOMER.LAST FRA kunder LEFT JOIN Ordrer ON = clienti.id ordini.id_cliente HVOR ER NULL ordini.id_cliente ORDER BY ASC CUSTOMER.LASTResultatet er i virkeligheden en liste med navne på vores kunder, som aldrig har købt noget.
| |
MS Access (Avanceret)
Lær at oprette og administrere databaser hurtigt og nemt. Fra 29 €. |
| |
MySQL (Kursus)
Forvaltning af open source-database. Fra 39 €. |
| |
SQL-og Database (Kursus)
Oprette og administrere relationelle databaser. Fra 39 €. |