Inner Join in Oracle - Leer Top 6 Query Voorbeelden van Inner Join in Oracle

Inhoudsopgave:

Anonim

Inleiding tot Inner Join in Oracle

De joins-clausules worden in de Oracle-database gebruikt om toegang te krijgen tot de gegevens uit meerdere tabellen om informatie te verkrijgen. Er zijn verschillende soorten joins in de Oracle-database.

Inner join is een van de typen join in de Oracle-database. Een inner join, voeg de meerdere tabellen samen en retourneer die rijen waarvoor de join-voorwaarde waar is of waar is. Een inner join wordt ook wel een eenvoudige join genoemd. De binnenste join is de meest voorkomende join onder de typen join.

De syntaxis van de inner join

SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;

De visuele weergave van de inner join wordt in het onderstaande diagram weergegeven, omdat in het onderstaande diagram het gearceerde gebied terugkeert als resultaat van de Oracle Inner Join

De Oracle Inner Join retourneert als resultaat de snijpunten van t1 en t2.

Query-voorbeelden voor Inner Join

Laten we de inner join in detail begrijpen met behulp van enkele voorbeelden van zoekopdrachten:

Voorbeeld 1

Voorbeeld van een zoekopdracht voor Inner Join

SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;

Dit bovenstaande voorbeeld van Oracle INNER JOIN retourneert alle rijen uit de tabel met medewerkers en afdelingen waar de waarde _id van werknemer in zowel de tabel met medewerkers als de tabel met afdelingen overeenkomt.

We beschouwen hier het hr-schema, dat is het voorbeeldschema van de Oracle-database. Het hr-schema bevat de LANDEN, WERKNEMERS, AFDELINGEN, JOB_HISTORY, JOBS, LOCATIES, REGIO'S-tabellen waarin we geïnteresseerd zijn of waarvoor WERKNEMERS, AFDELINGEN en LOCATIES-tabellen nodig zijn.

De beschrijving van deze tabellen is -

Tabel WERKNEMERS

Tabel AFDELINGEN

Tabel LOCATIES

Voorbeeld 2

Voorbeeld van inner join voor twee tabellen

Hier willen we gegevens ophalen uit twee tabellen WERKNEMERS en AFDELINGEN. Hier vragen we om de medewerker-ID en de voornaam van de medewerker op te halen uit de tabel van de medewerker en de afdelingsnaam uit de tabel van de afdeling -

SELECT employees. employee_id, employees. first_name, departments.department_name
FROM employees, departments
WHERE employees. employee_id = departments. department_id;

uitgang

De kolomnamen met de tabel worden voorafgegaan door de Oracle SELECT-clausule. Als een kolom in beide tabellen voorkomt, moet de kolomnaam voor de duidelijkheid worden voorafgegaan door de tabelnaam. De tabellen waaruit de gegevens moeten worden opgehaald, specificeren in de clausule van met de door komma's gescheiden. In de WHERE-clausule geeft u de join-voorwaarde op. De relatie tussen medewerkers en afdelingstabellen wordt bepaald door de waarden in de gemeenschappelijke kolom employee_id in beide tabellen moet gelijk zijn en deze relatie wordt een Equi Join genoemd. Gewoonlijk zijn primaire sleutel en buitenlandse sleutels bij deze relatie betrokken.

Voorbeeld 3

Voorbeeld van inner join van twee tabellen met aliassen

Laten we het bovenstaande voorbeeld herschrijven door tabelaliassen te gebruiken als -

SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id;

uitgang

Net als in de bovenstaande query, worden de tabelaliassen gemaakt in de van-clausule achter de kolomnaam en in plaats van een volledige tabelnaam in de select-clausule voor elke kolom te schrijven, gebruikt u de tabelaliassen als e en d in de bovenstaande query.

Voorbeeld 4

Voorbeeld van inner join voor twee tabellen met aanvullende clausules toevoegen

Voorbeeld van de volgende vraag waarbij we extra clausules toevoegen aan onze Oracle SELECT-instructie waarin clausule voor het toevoegen van aggregaties, het beperken van de geretourneerde rijen, het definiëren van de sorteervolgorde enzovoort. Hier is een voorbeeldquery die alle werknemers ophaalt die op afdelingen Financiën, Productie en Bouw werken.

SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ( 'Finance', 'Manufacturing', 'Construction' );

uitgang

Voorbeeld 5

Voorbeeld van inner join van twee tabellen met een order by-clausule

In het volgende queryvoorbeeld herschrijven we de bovenstaande query door de order by-clausule toe te voegen, waardoor de gegevens van de werknemer worden gesorteerd op afdelingsnaam.

SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ('Finance', 'Manufacturing', 'Construction')
ORDER BY d. department_name;

uitgang

Voorbeeld 6

Inner Join-voorbeeld voor meerdere tabellen join

Soms moeten we aan meer dan twee tabellen deelnemen om de informatie te krijgen. Vervolgens schrijven we het queryvoorbeeld om aan meerdere tabellen deel te nemen. Beschouw het voorbeeld dat we de voornaam van de werknemer uit de tabel met medewerkers willen halen, de naam van de afdeling uit de tabel met afdelingen en het land-ID van de locatie waar deze werknemer in de locatietabel werkt.

SELECT e. first_name, e. salary, d. department_name, l. city, l. country_id
FROM employees e, departments d, locations l
WHERE e. employee_id = d. department_id
AND
d. location_id = l. location_id;

uitgang

Om aan vier of meer tabellen deel te nemen, is hetzelfde concept van toepassing door de tabelnaam toe te voegen in de clausule FROM van een orakel en de join-voorwaarde toe te passen op de WHERE-component van een orakel.

Conclusie

Inner join is een van de typen join in de Oracle-database. Een binnenste join die wordt gebruikt om de meerdere tabellen samen te voegen en die rijen terug te geven waarvoor de join-voorwaarde waar is of waar is. Gewoonlijk zijn de primaire sleutel en de externe sleutel betrokken bij inner join om een ​​relatie tussen tabellen te maken.

Aanbevolen artikelen

Dit is een gids voor Inner Join in Oracle. Hier bespreken we de inleiding tot Inner join samen met enkele voorbeelden in detail. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Wordt lid van MySQL
  2. Oracle-zoekopdrachten
  3. Oracle Data Warehousing
  4. Wat is Oracle-database