SQL JOIN kombinerer en eller mere end én tabel baseret på deres relation. SQL JOIN involverer en overordnet tabel og en underordnet tabelrelation.
Der er forskellige typer SQL JOINS:
- Indre tilslutning
- Venstre ydre forbindelse
- Right Outer Join
- Fuld ydre forbindelse
- Cross Join.
Lad os forstå hver type SQL-forbindelser ved hjælp af eksempler.
Indre tilslutning
Inner Join i SQL er en meget brugt joinforbindelse. Den hentede alle poster fra begge tabeller indtil og medmindre betingelsen matchede. Det betyder, at denne join kun vil returnere de rækker, der er fælles i begge tabeller.
Syntaks for SQL Inner Join:
VÆLG Tabel_Navn1.Kolonne_Navn1, Tabelnavn1.Kolonne_Navn2, Tabelnavn1.Kolonne_Navn3,Tabelnavn2.Kolonne_Navn1,Tabelnavn2.Kolonne_Navn2, Tabelnavn2.Kolonne_Navn3, FRA Tabel_Navn1.Kolonnenavn1 T_Navn T_Navn T_Navn T_KOLNE Tabel_Navn T_Navn T_KOLON;Tabel_Navn.Overvej de allerede eksisterende tabeller, som har de bestemte data:
Tabel 1:Medarbejdere
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | 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 | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Tabel 2:Manager
Managerid | manager_navn | manager_afdeling |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TEST |
5 | Akash Kadam | C# |
Tabel 3:Bærbar computer:
LAPTOPID | NAVN | EMPLOYEEID |
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 |
Eksempler på SQL Inner Join
Eksempel 1: Udfør en forespørgsel for at slutte sig til medarbejdertabel og ledertabel og få vist medarbejderes detaljer som medarbejder-id, medarbejdernavn, løn fra medarbejderens tabel og leder-id og ledernavn fra ledertabellen.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_NAME FRA MEDARBEJDERE E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;
I ovenstående forespørgsel hentede vi medarbejder-id, fornavn, efternavn, løn fra medarbejderens tabel og leder-id, ledernavn fra ledertabel, hvor medarbejdernes tabelleder-id-kolonne er lig med ledertabelleder-id-kolonnen. Forespørgslen returnerer alle match-poster fra begge tabeller. Manager-id er en fælles kolonne mellem begge tabeller. E er et aliasnavn for medarbejderens bord, mens M er for lederbordet. Leder-id-feltet placeres som en fremmednøgle på medarbejdertabellen. Manager-id'et fungerer som den primære nøgle i managertabellen, hvilket skaber en forældre-underordnet relation mellem de to tabeller.
Output:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | Sneedeep Kaur |
2001 | PRACHI | SHARMA | 55500 | 1 | Sneedeep Kaur |
4003 | RUCHIKA | AGARWAL | 60.000 | 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 | 60.000 | 5 | Akash Kadam |
2003 | RUCHIKA | JAIN | 50.000 | 4 | Akash Kadam |
Posterne vises i stigende rækkefølge efter manager-id.
Eksempel 2: Udfør en forespørgsel for at deltage i medarbejdertabellen og ledertabellen, og vis medarbejderdetaljer som medarbejder-id, medarbejdernavn, løn fra medarbejderens tabel og leder-id og lederafdeling fra ledertabellen, hvor medarbejderlønnen er større end 58.000.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_DEPARTMENT FRA MEDARBEJDERE E INNER JOIN MANAGER M PÅ E.MANAGERID =M.MANAGERID HVOR LØN> 58000;>
I ovenstående forespørgsel hentede vi medarbejder-id, fornavn, efternavn, løn fra medarbejderens tabel, leder-id og lederafdeling fra leder-tabellen, hvor leder-id fra medarbejdernes tabel er lig med leder-id fra leder tabel kun de medarbejderposter, hvis løn er større end 58.000.
Output:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | MANAGERID | MANAGER_DEPARTMENT |
1001 | VAIBHAVI | MISHRA | 65500 | 1 | ORACLE |
4003 | RUCHIKA | AGARWAL | 60.000 | 1 | ORACLE |
2002 | BHAVESH | JAIN | 65500 | 2 | FMW |
3003 | DEEPAM | JAUHARI | 58500 | 3 | JAVA |
4001 | RAJESH | GOUD | 60500 | 4 | TEST |
1002 | VAIBHAV | SHARMA | 60.000 | 5 | C# |
Kun seks poster vises, hvor en medarbejders løn overstiger 58.000.
Eksempel 3: Udfør en forespørgsel for at slutte sig til medarbejdernes tabeller og bærbare computere, vis medarbejderoplysninger såsom medarbejder-id, medarbejdernavn og løn, byen fra medarbejderens bord, bærbar computer-id og bærbar computers navn fra bærbar computer
VÆLG EMP.EMPLOYEEID, EMP.FIRST_NAME, EMP.SALARY, EMP.CITY, LAP.LAPTOPID, LAP. NAVN FRA MEDARBEJDERE EMP INNER JOIN LAPTOP LAP ON EMP.EMPLOYEEID =LAP.EMPLOYEEID;
I ovenstående forespørgsel hentede vi medarbejder-id, fornavn, løn, by fra medarbejdernes bærbare computer-id og navn fra laptop-tabellen, hvor medarbejder-id fra medarbejder-tabellen er lig medarbejder-id fra bærbar computer. Medarbejder-id er en fremmednøgle i Laptop-tabellen, som skaber et forældre-barn-forhold mellem Employee-tabellen og Laptop-tabellen.
Output:
EMPLOYEEID | FIRST_NAME | LØN | BY | LAPTOPID | NAVN |
1002 | VAIBHAV | 60.000 | NOIDA | L102 | HP |
3003 | DEEPAM | 58500 | MUMBAI | L104 | HP |
4002 | ASHWINI | 54500 | NOIDA | L105 | DELL |
4003 | RUCHIKA | 60.000 | DELHI | L106 | LENOVO |
5001 | ARCHIT | 55500 | DELHI | L107 | DELL |
Kun fem medarbejderes poster vises.
Eksempel 4: Skriv en forespørgsel for at vise medarbejder-id, fornavn, løn og afdeling fra medarbejdertabellen Leder-id og lederens navn fra ledertabel ved hjælp af indre joinforbindelse, hvor løn> 55.000 og afdeling er Oracle.
VÆLG MEDARBEJDERID, FIRST_NAME, LØN, AFDELING, M.MANAGERID, M.MANAGER_NAME FRA MEDARBEJDERE E INNER JOIN MANAGER M PÅ E.MANAGERID =M.MANAGERID HVOR LØN> 55000 OG AFDELING ='ORACLE';
I ovenstående eksempel på joinforespørgsel viser vi medarbejderens detaljer som id, navn, løn og afdeling fra medarbejderens tabel, leder-id og ledernavn fra ledertabellen, hvor leder-id fra medarbejdernes tabel svarer til leder-id fra lederen kun de medarbejdere, hvis løn er større end 55.000, og afdelingen er Oracle.
Output:
EMPLOYEEID | FIRST_NAME | LØN | AFDELING | MANAGERID | MANAGER_NAME |
1001 | VAIBHAVI | 65500 | ORACLE | 1 | Snehdeep Kaur |
2001 | PRACHI | 55500 | ORACLE | 1 | Snehdeep Kaur |
4003 | RUCHIKA | 60.000 | ORACLE | 1 | Snehdeep Kaur |
Kun tre medarbejdere, hvis løn er større end 55.000, og afdelingen er Oracle.
Eksempel 5: Udfør en joinforespørgsel på medarbejdernes, lederen og bærbare computer-tabellen, og vis medarbejdernes detaljer, leder-id og laptop-id.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID FRA MEDARBEJDERE E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID INNER JOIN LAPTOP L PÅ E.EMPLOYEEYEEID =LEM.;
Ovenstående forespørgsel viser medarbejder-id, fornavn, efternavn, leder-id og laptop-id fra medarbejdere, leder og bærbare tabeller. Vi samler tre borde. Medarbejder-id er en fælles kolonne mellem medarbejdere og den bærbare tabel og skaber et forældre-barn-forhold mellem disse tre tabeller. Mellem medarbejdere og ledere er tabelleder-id den fælles kolonne.
Output:
EMPLOYEEID | 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 |
venstre ydre forbindelse
Den venstre ydre join vil returnere alle tabelposterne på venstre side af joinningen og matchende poster for tabellen på højre side af joinningen. Resultatsættet indeholder null for de poster, der ikke er almindelige på højre side.
Syntaks for venstre ydre sammenføjning:
SELECT Tabel_Navn1.Kolonne_Navn1, Tabel_Navn1.Kolonne_Navn2, Tabel_Navn1.Kolonne_Navn3,Tabel_Navn2.Kolonne_Navn1,Tabel_Navn2.Kolonne_Navn2, Tabel_Navn2.Kolonne_Navn3, FROM T_Navn Tabel_Navn 1_Kolumn_Navn.Tabel_Navn T_FRA T_2_Tabel Tabel_Navn; FROM T_Navn.Overvej de eksisterende tabeller, som har følgende poster:
Tabel 1:Medarbejdere
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60.000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | 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 | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Tabel 2:Manager
Managerid | manager_navn | manager_afdeling |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TEST |
5 | Akash Kadam | C# |
Tabel 3:Bærbar computer
LAPTOPID | NAVN | EMPLOYEEID |
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 |
Eksempler på SQL Left Outer Join
Eksempel 1: Udfør en venstre ydre join-forespørgsel på medarbejdernes bord og bærbare tabel, hvor der vises medarbejder-id, medarbejdernavn og laptop-id.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FRA MEDARBEJDERE E VENSTRE YDRE JOIN LAPTOP L PÅ E.EMPLOYEEID =L.EMPLOYEEID;
I ovenstående forespørgsel viste vi medarbejder-id, fornavn, efternavn fra medarbejderens bord-laptop-id og navn fra laptop-tabellen og udførte en venstre ydre join-forespørgsel på disse to tabeller. Forespørgslen returnerer null-værdier i højre side af tabellen, hvis rækkerne ikke er ens mellem tabellerne.
Output:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LAPTOPID | NAVN |
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 |
Eksempel 2: Skriv en forespørgsel for at hente medarbejder-id, fornavn, efternavn, løn fra medarbejders bord venstre ydre joinforbindelse på bærbar bord, hvor løn> 55.000.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FRA MEDARBEJDERE E VENSTRE YDRE JOIN LAPTOP L PÅ E.EMPLOYEEID =L.EMPLOYEEID HVOR LØN> 55000;55000; før>I ovenstående forespørgsel hentede vi medarbejderoplysningerne fra medarbejdernes tabel og laptopoplysningerne fra laptoptabellen, men kun de medarbejderoplysninger, hvor lønnen er større end 55.000. Vi udførte den venstre ydre joinforespørgsel på disse to tabeller. Forespørgslen returnerer null-værdier i højre side af tabellen, hvis rækkerne ikke er ens mellem tabellerne.
Output:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | LAPTOPID | NAVN |
1001 | VAIBHAVI | MISHRA | 65500 | NULL | NULL |
1002 | VAIBHAV | SHARMA | 60.000 | 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 | 60.000 | L106 | LENOVO |
5001 | ARCHIT | SHARMA | 55500 | L107 | DELL |
Højre ydre samling
Den højre ydre join vil returnere alle tabelposter på højre side af joinforbindelsen og matchende poster for tabellen på venstre side af joinforbindelsen. Resultatsættet indeholder null for de poster, der ikke er almindelige i venstre side.
Syntaks for højre ydre sammenføjning:
VÆLG Tabel_Navn1.Kolonne_Navn1, Tabel_Navn1.Kolonne_Navn2, Tabel_Navn1.Kolonne_Navn3,Tabel_Navn2.Kolonne_Navn1,Tabel_Navn2.Kolonne_Navn2, Tabel_Navn2.Kolonne_Navn3, FROM T_Navn Tabel_Navn.FROM TOU_Navn Tabel_Navn 1_Kolumn_Navn TOU_Navn Tabel_Tabel 1_Tabel_Navn.Eksempler på SQL Right Outer Join
Eksempel 1: Udfør en højre ydre joinforespørgsel på medarbejdernes bord og bærbare bord, hvor der vises medarbejder-id, navn på medarbejderne.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FRA MEDARBEJDERE E Højre YDRE JOIN LAPTOP L PÅ E.EMPLOYEEID =L.EMPLOYEEID;I ovenstående forespørgsel viste vi medarbejder-id, fornavn, efternavn fra medarbejderens bord-laptop-id og navn fra laptop-tabellen og udførte den højre ydre join-forespørgsel på disse to tabeller. Forespørgslen returnerer null-værdier i venstre side af tabellen, hvis rækkerne ikke er ens mellem tabellerne.
Output:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LAPTOPID | NAVN |
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 |
Eksempel 2: Skriv en forespørgsel for at hente medarbejder-id, fornavn og efternavn fra medarbejderens tabel. Højre ydre sammenføjning på laptopbord, hvor laptopnavnet inkluderer en af listerne er Dell, HP.
VÆLG E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FRA MEDARBEJDERE E HØJRE YDRE JOIN LAPTOP L PÅ E.EMPLOYEEID =L.EMPLOYEEID HVOR L.NAME IN (' DELL', 'HP');
I ovenstående forespørgsel viste vi medarbejdernes detaljer fra medarbejderens bærbare borddetaljer på laptopbordet. Vi udførte den rigtige ydre joinforespørgsel på disse to tabeller, kun den medarbejder, hvis bærbare navn inkluderer en af listerne, er Dell og HP. Forespørgslen returnerer null-værdier i venstre side af tabellen, hvis rækkerne ikke er ens mellem tabellerne.
Output:
EMPLOYEEID | FIRST_NAME | LAST_NAME | LAPTOPID | NAVN |
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 |
Fuld ydre forbindelse
Fuld ydre sammenføjning fletter resultatet af både venstre ydre sammenføjning og højre ydre sammenføjning. Full Outer Join er det samme som Cross Join. Full Outer Joins returnerer output, hvor rækker er almindelige eller usædvanlige mellem tabellerne.
Syntaks for fuld ydre sammenføjning:
VÆLG KOLUMNNAVN1, KOLUMNNAVN2 FRA TABEL1 FULD JOIN TABLE2;
Eksempel 1: Skriv en forespørgsel for at vise medarbejder-id, fornavn, efternavn fra leder-id fra medarbejders tabel fuld ydre tilslutning Managertabel, hvor medarbejderlønnen er større end 65.000.
VÆLG MEDARBEJDERID, FIRST_NAME, LAST_NAME, M.MANAGERID FRA MEDARBEJDERE FULDSTÆNDIG TILMELD MANAGER M HVOR LØN> 65000;
I ovenstående forespørgsel viste vi medarbejdernes detaljer og lederoplysninger fra medarbejdere- og ledertabellen, hvor medarbejderlønnen er større end 65.000 ved fuld tilslutning. Tilslut hver række af medarbejderens bord i sin helhed på tværs af hver række af lederens bord, dvs. det kartesiske produkt vil ske. M * N
Output:
EMPLOYEEID | 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 |
Som vi kan se, krydsforbindes medarbejder-id 1001 med hvert leder-id, det samme med medarbejder-id 2002.
Eksempel 2: Udfør en fuldstændig ydre join-forespørgsel på medarbejdernes bord og den bærbare computer, hvor medarbejderløn er større end 60.000, og medarbejderplacering er Pune.
VÆLG LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY FRA BÆRBARE BÆRBARE KOMMENDE MED MEDARBEJDERE E HVOR LØN> 60000 OG CITY ='PUNE';
I ovenstående forespørgsel viser vi laptop-id, medarbejder-id, fornavn, løn og by fra bærbar fuld tilslutning til medarbejdere kun dem, hvis løn er større end 60.000 og byen er Pune. Hvis begge betingelser matcher kun for medarbejder, hentes posten.
Output:
Deltag på kryds og tværs
Cross joins i SQL kaldes intet andet end et kartesisk produkt. Hver række i en tabel kombineres eller flettes med hver række i den anden tabel. M * N er kryds Join
Syntax of Cross join:
VÆLG KOLUMNNAVN1, KOLUMNNAVN2 FRA TABEL1 KRYDSJOIN TABEL2;
Eksempel 1: Skriv en forespørgsel for at udføre krydssammenføjning på medarbejdertabel og ledertabel, hvor medarbejderens fornavn starter med A
VÆLG MEDARBEJDERID, FIRST_NAME, M.MANAGERID FRA MEDARBEJDERE CROSS JOIN MANAGER M HVOR FIRST_NAME SOM "A%";
I ovenstående fulde ydre joinforespørgselseksempel hentede vi medarbejderoplysningerne og lederdetaljerne fra medarbejdertabellen og ledertabellen, men kun de poster, hvor medarbejderens fornavn begynder med bogstavet 'A'.
Output:
Resultatet viser, at medarbejder-id er en krydssammenføjning med hver leder-id-række.
M * N Her er M =3; medarbejder-id fra medarbejdertabeller
N =5; manager-id fra managertabel 3 * 5 =15 rækker.
Eksempel 2: Skriv en forespørgsel for at udføre krydssammenføjning på bærbare bord og medarbejderborde, hvor medarbejderlønnen er større end 58.000 og Mumbai.
VÆLG LAPTOPID, NAVN, E.EMPLOYEEID FRA LAPTOP CROSS JOIN MEDARBEJDERE E HVOR LØN> 58000 OG CITY ='MUMBAI';
I ovenstående forespørgsel viste vi den bærbare computer-id, navn og medarbejder-id fra bærbar-tabellen for at udføre krydssammenføjning på medarbejdernes bord, hvor medarbejderlønnen er større end 58.000, og byen er Pune. Cross join optræder som M * N.
Output: