Word lid van drie tabellen in SQL

Word Lid Van Drie Tabellen In Sql



Een van de belangrijkste kenmerken van relationele databases is de mogelijkheid om de gerelateerde gegevens te scheiden in verschillende componenten die 'tabellen' worden genoemd. In tegenstelling tot andere databases, vereisen relationele databases het verzamelen van gegevens uit verschillende tabellen en het samenvoegen van de resultaten tot zinvolle gegevens.

Dit is waar de functionaliteit van joins om de hoek komt kijken. In relationele databases zijn joins een van de meest voorkomende bewerkingen waarmee u de gegevens uit twee of meer tabellen kunt combineren tot één resultatenset.







Het kan echter zijn dat de meeste joins slechts twee tabellen dekken. Joins kunnen echter snel worden uitgebreid tot drie of meer tabellen. Hoewel het wellicht efficiënter is om naar CTE's te kijken wanneer u met meer dan drie tabellen werkt, kunnen joins zeer efficiënt en snel zijn als het om drie tabellen gaat.



In deze zelfstudie bespreken we de stappen die u nodig hebt om een ​​join met drie tabellen in SQL uit te voeren.



Aan de slag

Voordat we beginnen, gaan we ervan uit dat u drie eenvoudige tabellen hebt met de kolommen zoals hieronder weergegeven:





Tafel 1:
ID kaart | naam | leeftijd

Tafel 2:
ID kaart | stad | land

Tafel 3:
ID kaart | salaris | positie


Deze lay-out stelt ons in staat om snel te begrijpen hoe het samenvoegen van drie tabellen werkt en hoe we ze kunnen configureren met behulp van een SQL-query.

Word lid van drie tabellen in SQL

Bij het uitvoeren van een join in SQL begint het hoofdonderdeel met het identificeren van een gemeenschappelijke kolom of een reeks kolommen in elk van de tabellen waaraan u moet deelnemen. U kunt deze gedeelde kolommen vervolgens gebruiken om de tabel aan elkaar te koppelen, waardoor SQL de gegevens verstandig en efficiënt kan interpreteren en samenvoegen.



Hoewel er verschillende soorten joins zijn in SQL, is het belangrijkste onderdeel de overeenkomsten in de tabellen.

Voor deze zelfstudie richten we ons op een inner join die alleen de rijen retourneert die overeenkomen met de waarden in de drie tabellen.

In het geval van de voorgaande tabellen kunnen we een inner join uitvoeren op de drie tabellen, zoals blijkt uit de volgende query:

SELECTEER Tabel1.naam, Tabel2.stad, Tabel3.salaris
VAN Tabel1
INNERLIJKE JOIN Tabel2
AAN Tabel1.id = Tabel2.id
INNERLIJKE JOIN Tabel3
AAN Tabel2.id = Tabel3.id;


Laten we de vorige query stap voor stap onderzoeken:

    1. De eerste is de SELECT-instructie waarmee we de kolommen kunnen selecteren die we in de resultatenset willen opnemen. In dit geval zijn we geïnteresseerd in de naamkolom uit tabel 1, de plaatskolom uit tabel 2 en de salariskolom uit tabel 3.
    2. Met behulp van de opdracht FROM specificeren we de doeltabellen waaruit we de ingestelde kolommen willen ophalen. In dit geval halen we uit tabel 1.
    3. Vervolgens komt de INNER JOIN-clausule. We gebruiken deze clausule om Tabel 1 aan Tabel 2 te koppelen. We gebruiken ook de ON-clausule om de voorwaarde te specificeren die de twee tabellen koppelt, in dit geval de ID-kolom.
    4. De tweede INNER JOIN stelt ons in staat om de resultatenset vanaf de eerste join samen te voegen met Tabel 3. Met behulp van de ON-component vertellen we SQL dat we de resultatenset en Tabel 3 willen samenvoegen op basis van de ID-kolom.
    5. De resultaatset van alle drie de tabellen is opgenomen in de geselecteerde kolommen.

Praktisch voorbeeld:

Hoewel het vorige voorbeeld laat zien hoe u de drie tabellen kunt samenvoegen, laten we een meer praktisch voorbeeld nemen en de Sakila-database gebruiken.

We sluiten in dit geval aan bij de film-, huur- en inventaristabellen. De vraag is als volgt:

SELECTEER rental.rental_id, rental.rental_date, film.title, inventory.inventory_id
VAN verhuur
DOE MEE MET inventaris OP verhuur.inventory_id = inventaris.inventory_id
DOE MEE MET film OP inventaris.film_id = film.film_id
WHERE film.titel = 'ZONSONDERGANG RACER' ;


Uitleg:

    1. In dit geval gebruiken we de SELECT-instructie om de kolommen rental_id, rental_date en inventory_id uit de verhuurtabel te selecteren.
    2. De eerste JOIN-clausule koppelt de verhuurtabel aan de inventaristabel met behulp van de inventory_id-kolom.
    3. De tweede JOIN-clausule voegt de resultaatset van de eerste join samen met de filmtabel met behulp van de film_id-kolom.
    4. Ten slotte gebruiken we de WHERE-clausule om de resultatenset alleen te filteren om de doeltitel op te nemen.

De resulterende tabel is als volgt:

Conclusie

Om drie tabellen in SQL samen te voegen, moet een gedeelde kolom of reeks kolommen in elke tabel worden geïdentificeerd en moet het juiste type join (inner, left, right of full outer) worden gebruikt om de tabellen aan elkaar te koppelen. Zoals in deze zelfstudie wordt getoond, zou u moeten begrijpen hoe u drie tabellen in SQL kunt samenvoegen.