De SQL JOIN combineert een of meer tabellen op basis van hun relatie. De SQL JOIN omvat een bovenliggende tabel en een onderliggende tabelrelatie.
Er zijn verschillende soorten SQL JOINS:
- Innerlijke Join
- Linker buitenste join
- Rechts buitenste join
- Volledige uiterlijke deelname
- Kruis deelnemen.
Laten we elk type SQL-joins begrijpen met behulp van voorbeelden.
Innerlijke Join
Inner Join in SQL is een veelgebruikte join. Het haalde alle records van beide tabellen op totdat en tenzij de voorwaarde overeenkwam. Dit betekent dat deze join alleen die rijen retourneert die in beide tabellen voorkomen.
Syntaxis van SQL Inner Join:
SELECT Table_Name1.Colum_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 INNER JOIN Table_Name2 ON tabelOverweeg de reeds bestaande tabellen, die de volgende gegevens hebben:
Tabel 1:Werknemers
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | STAD | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORAKLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORAKLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORAKLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Tabel 2:Manager
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORAKLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTEN |
5 | Akash Kadam | C# |
Tabel 3:Laptop:
LAPTOPID | NAAM | WERKNEMER-ID |
L101 | DELL | NULL |
L102 | HP | 1002 |
L103 | LENOVO | NULL |
L104 | HP | 3003 |
L105 | DELL | 4002 |
L106 | LENOVO | 4003 |
L107 | DELL | 5001 |
L108 | HP | NULL |
L109 | DELL | NULL |
L110 | HP | NULL |
Voorbeelden van SQL Inner Join
Voorbeeld 1: Voer een query uit om lid te worden van de werknemerstabel en de managertabel en de details van de werknemers weer te geven, zoals de werknemers-ID, de naam van de werknemer, het salaris uit de tabel van de werknemer en de manager-ID en de naam van de manager uit de managertabel.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_NAME VAN WERKNEMERS E INNER WORDT MANAGER M ON E.MANAGERID =M.MANAGERID;
In de bovenstaande zoekopdracht hebben we werknemers-ID, voornaam, achternaam, salaris uit de tabel van de werknemer en manager-ID, managernaam uit managertabel gehaald, waarbij de kolom met de tabelmanager-ID van de werknemer gelijk is aan de kolom met managertabelmanager-ID. De query retourneert alle overeenkomende records uit beide tabellen. Manager-ID is een algemene kolom tussen beide tabellen. E is een aliasnaam voor de tafel van de werknemer, terwijl M voor de tafel van de manager is. Het veld manager-ID wordt als een externe sleutel op de werknemerstabel geplaatst. De manager-ID werkt als de primaire sleutel in de managertabel, waardoor een ouder-kindrelatie tussen de twee tabellen ontstaat.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | Sneedeep Kaur |
2001 | PRACHI | SHARMA | 55500 | 1 | Sneedeep Kaur |
4003 | RUCHIKA | AGARWAL | 60000 | 1 | Sneedeep Kaur |
1003 | NIKHIL | VANI | 50500 | 2 | Kirti kirtane |
2002 | BHAVESH | JAIN | 65500 | 2 | Kirti kirtane |
3002 | ANUJA | WANRE | 50500 | 2 | Kirti kirtane |
3001 | PRANOTI | SHENDE | 55500 | 3 | Abhishek Manish |
3003 | DEEPAM | JAUHARI | 58500 | 3 | Abhishek Manish |
4002 | ASHWINI | BAGHAT | 54500 | 3 | Abhishek Manish |
4001 | RAJESH | GOUD | 60500 | 4 | Anupam Mishra |
5001 | ARCHIT | SHARMA | 55500 | 4 | Anupam Mishra |
1002 | VAIBHAV | SHARMA | 60000 | 5 | Akash Kadam |
2003 | RUCHIKA | JAIN | 50000 | 4 | Akash Kadam |
De records worden in oplopende volgorde weergegeven op manager-ID.
Voorbeeld 2: Voer een query uit om lid te worden van de werknemerstabel en de managertabel en geef werknemersgegevens weer zoals werknemers-ID, werknemersnaam, salaris van de werknemerstabel en manager-ID en managerafdeling van de managertabel waar het werknemerssalaris hoger is dan 58000.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_DEPARTMENT VAN WERKNEMERS E INNER WORDT MANAGER M ON E.MANAGERID =M.MANAGERID WAAR SALARIJE> 58000;
In de bovenstaande query hebben we de werknemers-ID, voornaam, achternaam, salaris van de werknemerstabel, manager-ID en managerafdeling opgehaald uit de managertabel waarbij de manager-ID van de werknemerstabel gelijk is aan de manager-ID van manager tabel alleen die werknemersrecords waarvan het salaris hoger is dan 58000.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | MANAGERID | MANAGER_DEPARTMENT |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | ORAKLE |
4003 | RUCHIKA | AGARWAL | 60000 | 1 | ORAKLE |
2002 | BHAVESH | JAIN | 65500 | 2 | FMW |
3003 | DEEPAM | JAUHARI | 58500 | 3 | JAVA |
4001 | RAJESH | GOUD | 60500 | 4 | TESTEN |
1002 | VAIBHAV | SHARMA | 60000 | 5 | C# |
Er worden slechts zes records weergegeven als het salaris van een werknemer hoger is dan 58000.
Voorbeeld 3: Voer een query uit om deel te nemen aan de werknemerstafel en laptoptafel, geef werknemersdetails weer zoals werknemers-ID, werknemersnaam en salaris, de stad van de werknemerstafel, laptop-ID en laptopnaam van de laptoptafel
SELECTEER WERKNEMER-ID, WERKNEMER.FIRST_NAME, WERKNEMERSALARY, EMP.CITY, LAP.LAPTOPID, LAP. NAAM VAN WERKNEMERS WERKNEMER INNER SLUIT LAPTOP LAP AAN WERKNEMERSID =LAP.WERKNEMERSID;
In de bovenstaande zoekopdracht hebben we het werknemers-ID, de voornaam, het salaris, de stad uit de laptop-ID van de werknemerstafel en de naam uit de laptoptafel gehaald, waarbij het werknemers-ID van de werknemerstabel gelijk is aan het werknemers-ID van de laptoptafel. Werknemers-ID is een externe sleutel in de tabel Laptop, die een ouder-kindrelatie creëert tussen de tabel Werknemer en de tabel Laptop.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | SALARIS | STAD | LAPTOPID | NAAM |
1002 | VAIBHAV | 60000 | NOIDA | L102 | HP |
3003 | DEEPAM | 58500 | MUMBAI | L104 | HP |
4002 | ASHWINI | 54500 | NOIDA | L105 | DELL |
4003 | RUCHIKA | 60000 | DELHI | L106 | LENOVO |
5001 | ARCHIT | 55500 | DELHI | L107 | DELL |
Er worden slechts vijf werknemersrecords weergegeven.
Voorbeeld 4: Schrijf een query om werknemer-ID, voornaam, salaris en afdeling weer te geven uit de werknemerstabel Manager-ID en managernaam uit de managertabel met behulp van inner join waarbij salaris> 55000 en afdeling Oracle is.
SELECTEER EMPLOYEEID, FIRST_NAME, SALARY, AFDELING, M.MANAGERID, M.MANAGER_NAME VAN WERKNEMERS E INNER WORDT MANAGER M ON E.MANAGERID =M.MANAGERID WAAR SALARIS> 55000 EN AFDELING ='ORAKLE';
In het bovenstaande voorbeeld van een join-query tonen we de details van de werknemer, zoals id, naam, salaris en afdeling uit de tabel van de werknemer, manager-id en managernaam uit de managertabel waarbij de manager-id uit de tabel met werknemers gelijk is aan de manager-id van de manager alleen die werknemers wiens salaris hoger is dan 55000 en de afdeling Oracle is.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | SALARIS | AFDELING | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | 65500 | ORAKLE | 1 | Snehdeep Kaur |
2001 | PRACHI | 55500 | ORAKLE | 1 | Snehdeep Kaur |
4003 | RUCHIKA | 60000 | ORAKLE | 1 | Snehdeep Kaur |
Slechts drie werknemers met een salaris van meer dan 55000 en de afdeling is Oracle.
Voorbeeld 5: Voer een join-query uit op de tabel Werknemers, Manager en Laptop en geef de details van de werknemer, manager-ID en laptop-ID weer.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID VAN WERKNEMERS E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID INNER WORD LID VAN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;
De bovenstaande query toont het werknemers-ID, voornaam, achternaam, manager-ID en laptop-ID van werknemers-, manager- en laptoptabellen. We schuiven aan bij drie tafels. Werknemers-ID is een algemene kolom tussen werknemers en de laptoptabel en creëert een bovenliggende-kindrelatie tussen deze drie tabellen. Tussen werknemers en managers is tabelmanager-ID de gemeenschappelijke kolom.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | MANAGERID | LAPTOPID |
4003 | RUCHIKA | AGARWAL | 1 | L106 |
3003 | DEEPAM | JAUHARI | 3 | L104 |
4002 | ASHWINI | BAGHAT | 3 | L105 |
5001 | ARCHIT | SHARMA | 4 | L107 |
1002 | VAIBHAV | SHARMA | 5 | L102 |
Linker buitenste join
De linker outer join retourneert alle tabelrecords aan de linkerkant van de join en overeenkomende records voor de tabel aan de rechterkant van de join. De resultatenset bevat null voor de records die niet gebruikelijk zijn aan de rechterkant.
Syntaxis van linker outer join:
SELECT Table_Name1.Colum_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 LEFT OUT;Beschouw de bestaande tabellen, die de volgende records hebben:
Tabel 1:Werknemers
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | STAD | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORAKLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORAKLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORAKLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Tabel 2:Manager
Managerid | manager_name | manager_department |
1 | Snehdeep Kaur | ORAKLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTEN |
5 | Akash Kadam | C# |
Tabel 3:Laptop
LAPTOPID | NAAM | WERKNEMER-ID |
L101 | DELL | NULL |
L102 | HP | 1002 |
L103 | LENOVO | NULL |
L104 | HP | 3003 |
L105 | DELL | 4002 |
L106 | LENOVO | 4003 |
L107 | DELL | 5001 |
L108 | HP | NULL |
L109 | DELL | NULL |
L110 | HP | NULL |
Voorbeelden van SQL Left Outer Join
Voorbeeld 1: Voer een linker outer join-query uit op de tafel van werknemers en de laptoptafel, waar de werknemers-ID, de naam van de werknemer en de laptop-ID worden weergegeven.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME VAN WERKNEMERS E LINKS BUITEN WORD LID VAN LAPTOP L OP E.WERKNEMER =L.WERKNEMER;
In de bovenstaande query hebben we de werknemers-ID, voornaam, achternaam van de laptop-ID van de tafel van de werknemer en de naam van de laptoptafel weergegeven en hebben we een linker outer join-query uitgevoerd op deze twee tabellen. De query retourneert null-waarden aan de rechterkant van de tabel als de rijen niet gelijk zijn tussen tabellen.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | LAPTOPID | NAAM |
1001 | VAIBHAVI | MISHRA | NULL | NULL |
1002 | VAIBHAV | SHARMA | L102 | HP |
1003 | NIKHIL | VANI | NULL | NULL |
2001 | PRACHI | SHARMA | NULL | NULL |
2002 | BHAVESH | JAIN | NULL | NULL |
2003 | RUCHIKA | JAIN | NULL | NULL |
3001 | PRANOTI | SHENDE | NULL | NULL |
3002 | ANUJA | WANRE | NULL | NULL |
3003 | DEEPAM | JAUHARI | L104 | HP |
4001 | RAJESH | GOUD | NULL | NULL |
4002 | ASHWINI | BAGHAT | L105 | DELL |
4003 | RUCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARCHIT | SHARMA | L107 | DELL |
Voorbeeld 2: Schrijf een vraag om werknemers-ID, voornaam, achternaam, salaris op te halen van de linkerbuitentafel van de werknemer op de laptoptafel waar het salaris> 55000 is.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME VAN WERKNEMERS E LINKS BUITEN WORD LID VAN LAPTOP L OP E.WERKNEMER =L.WERKNEMER WAAR SALARIJE> 55000;
In de bovenstaande query hebben we de werknemersgegevens opgehaald uit de werknemerstafel en laptopgegevens uit de laptoptafel, maar alleen die werknemersgegevens met een salaris hoger dan 55000. We hebben de linker buitenste join-query uitgevoerd op deze twee tabellen. De query retourneert null-waarden aan de rechterkant van de tabel als de rijen niet gelijk zijn tussen tabellen.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | LAPTOPID | NAAM |
1001 | VAIBHAVI | MISHRA | 65500 | NULL | NULL |
1002 | VAIBHAV | SHARMA | 60000 | L102 | HP |
2001 | PRACHI | SHARMA | 55500 | NULL | NULL |
2002 | BHAVESH | JAIN | 65500 | NULL | NULL |
3001 | PRANOTI | SHENDE | 55500 | NULL | NULL |
3003 | DEEPAM | JAUHARI | 58500 | L104 | HP |
4001 | RAJESH | GOUD | 60500 | NULL | NULL |
4003 | RUCHIKA | AGARWAL | 60000 | L106 | LENOVO |
5001 | ARCHIT | SHARMA | 55500 | L107 | DELL |
Rechts buitenste join
De rechter outer join retourneert alle tabelrecords aan de rechterkant van de join en overeenkomende records voor de tabel aan de linkerkant van de join. De resultatenset bevat null voor de records die niet gebruikelijk zijn aan de linkerkant.
Syntaxis van rechter outer join:
SELECT Table_Name1.Colum_Name1, Table_Name1.Column_Name2, Table_Name1.Column_Name3,Table_Name2.Column_Name1,Table_Name2.Column_Name2, Table_Name2.Column_Name3, FROM Table_Name1 RIGHT_OUT2 ONVoorbeelden van SQL Right Outer Join
Voorbeeld 1: Voer een rechter outer join-query uit op de tafel van de werknemers en de laptoptafel, waar de werknemers-ID, de naam van de werknemers wordt weergegeven.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME VAN WERKNEMERS E Rechts BUITENSTE LID VAN LAPTOP L OP E.EMPLOYEEID =L.EMPLOYEEID;In de bovenstaande query hebben we de werknemer-ID, voornaam, achternaam van de laptop-ID van de tafel van de werknemer en de naam van de laptoptafel weergegeven en hebben we de rechter outer join-query uitgevoerd op deze twee tabellen. De query retourneert null-waarden aan de linkerkant van de tabel als de rijen niet gelijk zijn tussen tabellen.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | LAPTOPID | NAAM |
NULL | NULL | NULL | L101 | DELL |
1002 | VAIBHAV | SHARMA | L102 | HP |
NULL | NULL | NULL | L103 | LENOVO |
3003 | DEEPAM | JAUHARI | L104 | HP |
4002 | ASHWINI | BAGHAT | L105 | DELL |
4003 | RUCHIKA | AGARWAL | L106 | LENOVO |
5001 | ARCHIT | SHARMA | L107 | DELL |
NULL | NULL | NULL | L108 | HP |
NULL | NULL | NULL | L109 | DELL |
NULL | NULL | NULL | L110 | HP |
Voorbeeld 2: Schrijf een query om de werknemers-ID, voornaam en achternaam op te halen uit de tabel van de werknemer. Rechter buitenste join op laptoptafel waar de laptopnaam een van de lijsten bevat, is Dell, HP.
SELECTEER E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME VAN WERKNEMERS E RECHTS BUITEN WORD LID VAN LAPTOP L OP E.EMPLOYEEID =L.EMPLOYEEID WAAR L.NAME IN (' DELL', 'HP');
In de bovenstaande query hebben we de gegevens van de werknemers weergegeven uit de laptopgegevens van de tafel van de werknemer op de laptoptafel. We hebben de juiste outer join-query uitgevoerd op deze twee tabellen, alleen die werknemer wiens laptopnaam een van de lijsten bevat, is Dell en HP. De query retourneert null-waarden aan de linkerkant van de tabel als de rijen niet gelijk zijn tussen tabellen.
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | LAPTOPID | NAAM |
NULL | NULL | NULL | L101 | DELL |
1002 | VAIBHAV | SHARMA | L102 | HP |
3003 | DEEPAM | JAUHARI | L104 | HP |
4002 | ASHWINI | BAGHAT | L105 | DELL |
5001 | ARCHIT | SHARMA | L107 | DELL |
NULL | NULL | NULL | L108 | HP |
NULL | NULL | NULL | L109 | DELL |
NULL | NULL | NULL | L110 | HP |
Volledige uiterlijke deelname
Full Outer Join voegt het resultaat van zowel de Left Outer Joins als de Right Outer Join samen. Full Outer Join is hetzelfde als Cross Join. Full Outer Joins retourneert de uitvoer, waarbij rijen algemeen of ongebruikelijk zijn tussen de tabellen.
Syntaxis van volledige outer join:
SELECTEER COLUMNNAME1, COLUMNNAME2 UIT TABEL1 VOLLEDIGE JOIN TABLE2;
Voorbeeld 1: Schrijf een query om het werknemers-ID, voornaam, achternaam van manager-ID van de tabel van de werknemer volledig buiten de tabel van de manager weer te geven waar het werknemerssalaris hoger is dan 65000.
SELECTEER WERKNEMER-ID, FIRST_NAME, LAST_NAME, M.MANAGERID UIT WERKNEMERS VOLLEDIG LID WORDEN MANAGER M WAAR SALARIS> 65000;
In de bovenstaande zoekopdracht hebben we de details van de werknemers en de managergegevens weergegeven uit de tabel met werknemers en managers waarbij het salaris van de werknemer hoger is dan 65000 met volledige deelname. Voeg volledig toe aan elke rij van de tafel van de werknemer over elke rij van de tafel van de manager, d.w.z. het Cartesiaanse product zal gebeuren. M * N
Uitvoer:
WERKNEMER-ID | FIRST_NAME | LAST_NAME | MANAGERID |
1001 | VAIBHAVI | MISHRA | 1 |
1001 | VAIBHAVI | MISHRA | 2 |
1001 | VAIBHAVI | MISHRA | 3 |
1001 | VAIBHAVI | MISHRA | 4 |
1001 | VAIBHAVI | MISHRA | 5 |
2002 | BHAVESH | JAIN | 1 |
2002 | BHAVESH | JAIN | 2 |
2002 | BHAVESH | JAIN | 3 |
2002 | BHAVESH | JAIN | 4 |
2002 | BHAVESH | JAIN | 5 |
Zoals we kunnen zien, komt werknemer-ID 1001 samen met elke manager-ID, hetzelfde met werknemer-ID 2002.
Voorbeeld 2: Voer een volledige outer join-query uit op de tabel Werknemers en de laptoptafel, waar het werknemerssalaris hoger is dan 60000 en de werknemerslocatie Pune is.
SELECTEER LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY VANAF LAPTOP VOLLEDIGE WERKNEMERS E WHERE SALARY> 60000 AND CITY ='PUNE';
In de bovenstaande zoekopdracht geven we laptop-ID, werknemers-ID, voornaam, salaris en stad van laptop volledig weer, alleen werknemers wiens salaris hoger is dan 60000 en de stad Pune is. Als beide voorwaarden overeenkomen voor alleen voor werknemers, wordt het record opgehaald.
Uitvoer:
Kruis deelnemen
Cross joins in SQL zijn niets anders dan een cartesiaans product genoemd. Elke rij van de ene tabel wordt gecombineerd of samengevoegd met elke rij van de andere tabel. M * N is cross Join
Syntaxis van Cross join:
SELECTEER COLUMNNAME1, COLUMNNAME2 UIT TABEL1 CROSS JOIN TABLE2;
Voorbeeld 1: Schrijf een query om de cross-join-bewerking uit te voeren op de werknemerstabel en de managertabel waarbij de voornaam van de werknemer begint met A
SELECTEER EMPLOYEEID, FIRST_NAME, M.MANAGERID VAN WERKNEMERS CROSS JOIN MANAGER M WHERE FIRST_NAME LIKE 'A%';
In het bovenstaande voorbeeld van een volledige outer join-query hebben we de werknemersgegevens en managergegevens opgehaald uit de werknemerstabel en managertabel, maar alleen die records waarbij de voornaam van de werknemer begint met de letter 'A'.
Uitvoer:
Het resultaat laat zien dat werknemers-ID een cross join is met elke rij met manager-ID's.
M * N Hier, M =3; werknemers-ID van werknemerstabellen
N =5; manager-ID van managertabel 3 * 5 =15 rijen.
Voorbeeld 2: Schrijf een query om cross join-bewerkingen uit te voeren op laptoptafels en werknemerstafels waar het werknemerssalaris hoger is dan 58000 en Mumbai.
SELECTEER LAPTOPID, NAAM, E.WERKNEMER-ID VAN LAPTOP CROSS WORD LID VAN WERKNEMERS E WHERE SALARY> 58000 AND CITY ='MUMBAI';
In de bovenstaande query hebben we de laptop-ID, naam en werknemers-ID van de laptoptafel weergegeven om cross join-bewerkingen uit te voeren op de werknemerstafel waar het werknemerssalaris hoger is dan 58000 en de stad Pune is. Cross join presteert als M * N.
Uitvoer: