MySQL Subquery Zelfstudie

Schrijver: Marcus Baldwin
Datum Van Creatie: 16 Juni- 2021
Updatedatum: 10 Kunnen 2024
Anonim
MySQL Subquery Zelfstudie - Artikelen
MySQL Subquery Zelfstudie - Artikelen

Inhoud

Subqueries zijn query's die in een andere zijn genest. Hiermee kunt u een deel van de zin van elkaar scheiden en een beter leesbaar alternatief bieden voor bewerkingen waarvoor complexe joins en koppelingen nodig zijn. Subqueries in MySQL kunnen een waarde, rij, kolom of tabel met gegevens retourneren.


Gebruik subqueries om meer leesbare en compacte zinnen te maken (Thinkstock Images / Comstock / Getty Images)

De syntaxis

De basissyntaxis van een subquery is als volgt:

SELECT * FROM table1 WHERE kolomA = (kolom SELECTB FROM table2) GO

Subqueries moeten bestaan ​​uit een instructie "SELECT", "INSERT", "UPDATE", "DELETE", "SET" of "DO" en u kunt de tabel niet tegelijkertijd wijzigen en gebruiken in de subquery. Subqueries worden meestal gebruikt aan de rechterkant van de WHERE-component, die elke vergelijking en logische operatoren kan bevatten, zoals = (gelijk), <> (anders), <= (kleiner dan of gelijk),> = of "TUSSEN" (tussen twee waarden), "NIET", "EN" en "OF". U kunt ook de sleutelwoorden "DISTINCT", "GROUP BY", "ORDER BY" en "LIMIT" gebruiken en zelfs combineren met "JOIN" -instructies. Afgezien van de gedetailleerde beperkingen, zijn er enkele beperkingen bij het schrijven van subquery's in MySQL.


Er is zelfs geen beperking op het aantal subquery's dat binnen een zin is gemaakt. U kunt meer informatie vinden over subqueries in de MySQL-referentiehandleiding (zie het gedeelte "Bronnen").

voorbeeld

Stel dat u twee tabellen hebt: een met de voor- en achternaam, het adres en de postcode van leden van een mailinglijst en een met steden, staten en postcode. Om de namen te vinden van leden die in Brasilia wonen, kunnen meerdere "selecteer" zinnen worden gebruikt. De eerste zal de CEP's van Brasilia zoeken:

SELECT FROM FROM codes WHERE state = "BRASILIA" GO

Gebruik vervolgens een "select" voor elke gevonden postcode:

SELECTEER naam, achternaam VAN adressen WHERE cep = [codecep] GO

Deze methode kost veel tijd en is gemakkelijk om fouten te maken. Het is gemakkelijk om een ​​postcode te verliezen, vooral als er te veel van zijn. Een eenvoudigere manier om deze taak te voltooien is om de eerste zin als een subquery binnen de tweede te gebruiken:


SELECTEER naam, achternaam FROM adressen WHERE cep = (SELECT cep FROM codes WHERE state = "BRASILIA") GO

Deze zoekopdracht toont alle leden van uw mailinglijst die in Brasilia wonen.