..
Vem vet vad kunskaper om SQL är kopplingen. I våra guider och andra artiklar vi förklarade hur JOIN och hur du kan skapa relationer mellan olika tabeller i en databas.
Det vanligaste kravet är nöjd med instrumentet JOIN för att hitta matcher mellan två tabeller, i vilket fall hjälper INNER JOIN klausul som exakt lokaliserar och returnerar fält som uppfyller korrespondens sökas inom två eller flera inblandade tabeller i JOIN.
Mycket mindre intuitivt är behovet av att identifiera de områden som annars inte har en match i JOIN.
Låt oss ta ett exempel.
Anta att du har att hantera en databas med en e-handel består av endast två tabeller:
För att tillgodose det första kravet, naturligtvis, är ganska enkel:
VÄLJ CUSTOMER.FIRST, CUSTOMER.LAST FROM kunder INNER JOIN Orders ON = clienti.id ordini.id_cliente ORDER BY ASC CUSTOMER.LASToch hittills inga problem.
Men hur kan vi göra för att vända på resultatet?
Tja ...
Först bör du inte använda en LEFT JOIN, INNER JOIN, men i syfte att nå en match inte är full, men partiell, där dock resultat från den vänstra tabellen tillbaka ändå.
Utan detta kommer vi att söka efter (med hjälp av WHERE-sats) saknas register (dvs inte finns i rapporten) och sedan identifieras som NULL (i SQL NULL definieras som ett slags "särskilt värde" som identifierar en avsaknad av värde ..)
Låt oss se koden:
VÄLJ CUSTOMER.FIRST, CUSTOMER.LAST FROM kunder LEFT JOIN Orders ON = clienti.id ordini.id_cliente VAR ÄR NULL ordini.id_cliente ORDER BY ASC CUSTOMER.LASTResultatet är i själva verket en lista med namn på kunder som har aldrig köpt något.
| |
MS Access (Kurs)
Lär dig skapa och hantera databaser enkelt och snabbt. Från 29 €. |
| |
MySQL (Kurs)
Hantering av öppen källkod databas. Från 39 €. |
| |
SQL och databas (kurs)
Skapa och hantera relationsdatabaser. Från 39 €. |