MySQL subqueries Tutorial

Subqueries er spørsmål nestet i en annen spørring. Subqueries tillate deg å skille hver del av erklæringen og gi en mer lesbar alternativ til å utføre operasjoner som ville kreve komplekse tiltrer og fagforeninger uten subqueries. MySQL subqueries kan returnere en enkelt verdi, enkelt rad, enkelt kolonne eller et bord.

den Syntax

Den grunnleggende syntaks for en delspørringen er dette:

SELECT * FROM tabell WHERE Columna = (SELECT columnb Fra table2)

Subqueries må være en SELECT, INSERT, UPDATE, DELETE, SET eller DO uttalelse, og du kan ikke endre et bord og velge fra det i delspørringen.

Subqueries er vanligvis funnet på høyre side av WHERE-leddet, som kan inneholde noen av følgende sammenligning og logiske operatører: = (er lik), <> (ikke lik), <= (mindre enn eller lik),> = (større enn eller lik), <(mindre enn),> (større enn), mELLOM (verdi ligger mellom to verdier)
NOT (logisk NOT), OG (logisk AND), OR (logisk OR). De kan også inneholde DISTINCT, GROUP BY, ORDER BY, og LIMIT søkeord. De kan også brukes i forbindelse med BLI uttalelser. Annet enn de begrensningene ovenfor, er det svært få begrensninger plassert på subqueries innen MySQL.

Det er ikke engang en begrensning på antall subqueries som kan bli funnet i en uttalelse. Så lenge du plassere hver delspørringen i parentes, kan du ha så mange nøstede spørringer som du trenger for å finne dine data. Mer informasjon om subqueries kan bli funnet i MySQL referansehåndboken (se Ressurser).

Eksempel

Tenk deg at du har to tabeller: den første inneholder fornavn, etternavn, adresse og postnummer av medlemmene i adresselisten; den andre inneholder by, stat og postnummer. Hvis du ønsket å finne navnene på de medlemmene som bor i Georgia, kan du bruke flere utvalgte uttalelser. Den første setningen ville være å finne zip koder for Georgia:

SELECT zip fra postnummer HVOR state = "Georgia"

Så du ville utstede en utvalgt uttalelse for hvert postnummer fant:

SELECT fname, lname Fra adresse der zip = "[postnummer]"

Denne metoden er meget tidkrevende og utsatt for feil. Det er lett å gå glipp av et postnummer, spesielt hvis det er mange av dem.

En enklere måte å fullføre oppgaven vil være å utstede den første setningen som en delspørringen til den andre setningen:

SELECT fname, lname Fra adresse der zip = (SELECT zip fra postnummer HVOR state = "Georgia")

Dette søket vil returnere alle medlemmene i din e-postliste som bor i Georgia med en spørring.