MySQL Subquery Tutorial

Forfatter: Marcus Baldwin
Opprettelsesdato: 19 Juni 2021
Oppdater Dato: 24 April 2024
Anonim
Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn
Video: Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn

Innhold

Subqueries er spørringer nestet inne i en annen. De tillater deg å skille del av setningen og gi et mer lesbart alternativ til operasjoner som kan kreve komplekse sammenhenger og fagforeninger. Subqueries i MySQL kan returnere en verdi, rad, kolonne eller tabell med data.


Bruk subqueries til å lage mer lesbare og kompakte setninger (Thinkstock Images / Comstock / Getty Images)

Syntaxen

Den grunnleggende syntaksen til en underforespørsel er som følger:

SELECT * FROM table1 WHERE columnA = (VELG kolonneB FRA tabell2) GO

Subqueries bør bestå av en "SELECT", "INSERT", "UPDATE", "DELETE", "SET" eller "DO" setningen, og du kan ikke endre tabellen og bruke den i underprospektet samtidig. Subqueries brukes vanligvis på høyre side av WHERE-klausulen, som kan inneholde noen av sammenligningene og logiske operatører, for eksempel = (like), <> (forskjellig), <= (mindre enn eller lik),> = eller "MELLOM" (mellom to verdier), "NOT", "OG" og "ELLER". Du kan også bruke søkeordene "DISTINCT", "GROUP BY", "ORDER BY" og "LIMIT" og til og med kombinert med "JOIN" -klæringer. Bortsett fra de detaljerte begrensningene, er det få begrensninger når du skriver underkategorier i MySQL.


Det er ikke engang en begrensning på antall undersøkelser gjort i en setning. Du finner mer informasjon om subqueries i MySQL referansehåndboken (se delen "Ressurser").

eksempel

Anta at du har to bord: ett med for- og etternavn, adresse og postnummer til medlemmer av en adresseliste, og en med byer, stater og postnummer. For å finne navnene på medlemmer som bor i Brasilia, kan flere "velg" setninger brukes. Den første vil søke CEPs av Brasilia:

VELG FRA FRA koder WHERE state = "BRASILIA" GO

Deretter bruker du en "velg" for hver postkode funnet:

VELG navn, etternavn FRA adresser WHERE cep = [codecep] GO

Denne metoden er tidkrevende og lett å gjøre feil. Det er lett å miste en postnummer, spesielt hvis det er for mange av dem. En enklere måte å fullføre denne oppgaven på er å bruke den første setningen som et underspørsmål innen det andre:


SELECT navn, etternavn FRA adresser WHERE cep = (SELECT cep FRA koder WHERE state = "BRASILIA") GO

Denne spørringen vil vise alle medlemmer av din adresseliste som bor i Brasilia.