SQL JOIN kombinuje jednu nebo více než jednu tabulku na základě jejich vztahu. SQL JOIN zahrnuje nadřazenou tabulku a podřízenou tabulku.
Existují různé typy SQL JOINS:
- Vnitřní spojení
- Levý vnější spoj
- Přímé vnější spojení
- Úplné vnější spojení
- Křížové připojení.
Pojďme porozumět jednotlivým typům SQL spojení pomocí příkladů.
Vnitřní spojení
Inner Join v SQL je široce používané spojení. Načetlo všechny záznamy z obou tabulek, dokud a pokud podmínka neodpovídala. To znamená, že toto spojení vrátí pouze ty řádky společné v obou tabulkách.
Syntaxe 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, Table_Name2.Column_Name_Column_Name Table1_Column_Name3,Column_Name.Zvažte již existující tabulky, které mají určitá data:
Tabulka 1:Zaměstnanci
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | MĚSTO | ODDĚLENÍ | ID SPRÁVCE |
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 | TESTOVÁNÍ | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60 000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTOVÁNÍ | 4 |
Tabulka 2:Správce
Managerid | název_manažera | manažer_oddělení |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTOVÁNÍ |
5 | Akash Kadam | C# |
Tabulka 3:Notebook:
LAPTOPID | NAME | ID ZAMĚSTNANCE |
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 |
Příklady SQL Inner Join
Příklad 1: Provedením dotazu se připojte k tabulce zaměstnanců a tabulce manažerů a zobrazte podrobnosti o zaměstnancích, jako je ID zaměstnance, jméno zaměstnance, plat z tabulky zaměstnance a ID manažera a jméno manažera z tabulky manažera.
VYBRAT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_NAME Z ZAMĚSTNANCŮ E VNITŘNÍ SPRÁVCE PŘIPOJENÍ M NA E.MANAGERID =M.MANAGERID;
Ve výše uvedeném dotazu jsme získali ID zaměstnance, jméno, příjmení, plat z tabulky zaměstnance a ID manažera, jméno manažera z tabulky manažerů, kde sloupec ID manažera tabulky zaměstnanců se rovná sloupci ID manažera tabulky manažera. Dotaz vrátí všechny záznamy o shodách z obou tabulek. ID správce je společný sloupec mezi oběma tabulkami. E je alias pro tabulku zaměstnanců, zatímco M je pro tabulku manažerů. Pole ID manažera je umístěno jako cizí klíč na tabulku zaměstnanců. ID správce funguje jako primární klíč v tabulce správce, což vytváří vztah rodič-dítě mezi dvěma tabulkami.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | ID SPRÁVCE | 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 |
Záznamy se zobrazují ve vzestupném pořadí podle ID manažera.
Příklad 2: Provedením dotazu připojte tabulku zaměstnanců a tabulku manažera a zobrazte podrobnosti o zaměstnancích, jako je ID zaměstnance, jméno zaměstnance, plat z tabulky zaměstnance a ID manažera a oddělení manažera z tabulky manažerů, kde je plat zaměstnance vyšší než 58 000.
VYBERTE E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_ODDĚLENÍ OD ZAMĚSTNANCŮ E VNITŘNÍ SPRÁVCE PŘIPOJENÍ M NA E.MANAGERID =M.MANAGERID KDE PLAT> 58000;
Ve výše uvedeném dotazu jsme získali ID zaměstnance, jméno, příjmení, plat z tabulky zaměstnance, ID manažera a oddělení manažera z tabulky manažerů, kde se ID manažera z tabulky zaměstnanců rovná ID manažera od manažera tabulky pouze ty záznamy zaměstnanců, jejichž mzda je vyšší než 58 000.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | ID SPRÁVCE | ODDĚLENÍ SPRÁVCE |
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 | TESTOVÁNÍ |
1002 | VAIBHAV | SHARMA | 60 000 | 5 | C# |
Je zobrazeno pouze šest záznamů, kde mzda zaměstnance přesahuje 58 000.
Příklad 3: Provedením dotazu se připojte ke stolu zaměstnanců a stolu notebooku, zobrazte podrobnosti o zaměstnanci, jako je ID zaměstnance, jméno zaměstnance a plat, město ze stolu zaměstnance, ID notebooku a název notebooku ze stolu notebooku
ZVOLTE EMP.EMPLOYEEID, EMP.FIRST_NAME, EMP.SALARY, EMP.CITY, LAP.LAPTOPID, LAP. JMÉNO OD ZAMĚSTNANCŮ EMP INNER JOIN LAPTOP LAP ON EMP.EMPLOYEEID =LAP.EMPLOYEEID;
Ve výše uvedeném dotazu jsme získali ID zaměstnance, křestní jméno, plat, město z ID notebooku u stolu zaměstnanců a jméno z tabulky notebooku, kde ID zaměstnance z tabulky zaměstnance se rovná ID zaměstnance z tabulky notebooku. ID zaměstnance je cizí klíč v tabulce Laptop, který vytváří vztah rodič-dítě mezi tabulkou Zaměstnanci a tabulkou Laptop.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | PLAT | MĚSTO | LAPTOPID | NAME |
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 |
Zobrazí se pouze záznamy pěti zaměstnanců.
Příklad 4: Napište dotaz pro zobrazení ID zaměstnance, jména, platu a oddělení z tabulky zaměstnanců ID manažera a jméno manažera z tabulky manažerů pomocí vnitřního spojení, kde plat> 55000 a oddělení je Oracle.
VYBERTE ID ZAMĚSTNANCE, JMÉNO, PLAT, ODDĚLENÍ, M.MANAGERID, M.MANAGER_NAME OD ZAMĚSTNANCŮ E VNITŘNÍ SPRÁVCE PŘIPOJENÍ M NA E.MANAGERID =M.MANAGERID WHERE PLAT> 55000 A ODDĚLENÍ ='pre>ORACLE';ORACLE';
Ve výše uvedeném příkladu připojovacího dotazu zobrazíme podrobnosti o zaměstnanci, jako je id, jméno, plat a oddělení z tabulky zaměstnance, ID manažera a jméno manažera z tabulky manažera, kde se ID manažera z tabulky zaměstnanců rovná ID manažera z manažerem pouze ti zaměstnanci, jejichž plat je vyšší než 55 000 a oddělením je Oracle.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | PLAT | ODDĚLENÍ | ID SPRÁVCE | MANAGER_NAME |
1001 | VAIBHAVI | 65500 | ORACLE | 1 | Snehdeep Kaur |
2001 | PRACHI | 55500 | ORACLE | 1 | Snehdeep Kaur |
4003 | RUCHIKA | 60 000 | ORACLE | 1 | Snehdeep Kaur |
Pouze tři zaměstnanci s platem vyšším než 55 000 a oddělením je Oracle.
Příklad 5: Proveďte připojovací dotaz v tabulce Zaměstnanci, Manažer a Laptop a zobrazte podrobnosti zaměstnanců, ID manažera a ID notebooku.
VYBERTE E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID OD ZAMĚSTNANCŮ E INNER JOIN MANAGER M NA E.MANAGERID =M.MANAGERID VNITŘNÍ PŘIPOJENÍ LAPTOPU L ON E.EMPLOYEEID =LEMPLOYEID;
Výše uvedený dotaz zobrazuje ID zaměstnance, jméno, příjmení, ID manažera a ID notebooku z tabulek zaměstnanců, manažera a notebooku. Spojujeme tři stoly. ID zaměstnance je společný sloupec mezi zaměstnanci a tabulkou notebooku a vytváří mezi těmito třemi tabulkami vztah rodič-dítě. Mezi zaměstnanci a manažery je společným sloupcem ID správce tabulky.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | ID SPRÁVCE | 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 |
Levý vnější spoj
Levé vnější spojení vrátí všechny záznamy tabulky na levé straně spojení a odpovídající záznamy pro tabulku na pravé straně spojení. Result-set obsahuje null pro záznamy, které nejsou běžné na pravé straně.
Syntaxe levého vnějšího spojení:
Tabulka 1:Zaměstnanci
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | MĚSTO | ODDĚLENÍ | ID SPRÁVCE |
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 | TESTOVÁNÍ | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60 000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTOVÁNÍ | 4 |
Tabulka 2:Správce
Managerid | název_manažera | manažer_oddělení |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | TESTOVÁNÍ |
5 | Akash Kadam | C# |
Tabulka 3:Notebook
LAPTOPID | NAME | ID ZAMĚSTNANCE |
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 |
Příklady SQL Left Outer Join
Příklad 1: Proveďte dotaz na levé vnější spojení v tabulce zaměstnanců a tabulce notebooku, kde se zobrazí ID zaměstnance, jméno zaměstnance a ID notebooku.
VYBERTE E. E. EMPLOYEEID, E. FIRST_NAME, E.LAST_NAME, L. LAPTOPID, L. JMÉNO OD ZAMĚSTNANCŮ E LEVÝ VNĚJŠÍ PŘIPOJIT LAPTOP L ON E. EMPLOYEEID =L. EMPLOYEEID;
Ve výše uvedeném dotazu jsme zobrazili ID zaměstnance, křestní jméno, příjmení z ID notebooku v tabulce zaměstnance a jméno z tabulky notebooku a provedli jsme dotaz na levé vnější spojení na tyto dvě tabulky. Pokud nejsou řádky mezi tabulkami podobné, dotaz vrátí hodnoty null na pravé straně tabulky.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | LAPTOPID | NAME |
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 |
Příklad 2: Napište dotaz pro získání ID zaměstnance, křestního jména, příjmení, platu z tabulky zaměstnanců vlevo vnější spojení na stole notebooku, kde plat> 55 000.
VYBERTE E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME Z ZAMĚSTNANCŮ E L. VNĚJŠÍ PŘIPOJENÍ K LAPTOPU L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE PALARY> 55000;55000; před>Ve výše uvedeném dotazu jsme získali podrobnosti o zaměstnancích z tabulky zaměstnanců a podrobnosti o notebooku z tabulky notebooku, ale pouze ty podrobnosti o zaměstnancích, kde je plat větší než 55 000. U těchto dvou tabulek jsme provedli dotaz na levé vnější spojení. Pokud nejsou řádky mezi tabulkami podobné, dotaz vrátí hodnoty null na pravé straně tabulky.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | LAPTOPID | NAME |
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 |
Přímé vnější spojení
Pravé vnější spojení vrátí všechny záznamy tabulky na pravé straně spojení a odpovídající záznamy pro tabulku na levé straně spojení. Result-set obsahuje null pro záznamy, které nejsou běžné na levé straně.
Syntaxe pravého vnějšího spojení:
Příklad 1: Proveďte dotaz na pravé vnější spojení u stolu zaměstnanců a stolu notebooku, kde se zobrazí ID zaměstnance, jméno zaměstnanců.
VYBRAT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM EMPLOYEES E Right OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;
Ve výše uvedeném dotazu jsme zobrazili ID zaměstnance, křestní jméno, příjmení z id notebooku zaměstnance tabulky a jméno z tabulky notebooku a provedli jsme pravý vnější dotaz na spojení na tyto dvě tabulky. Pokud nejsou řádky mezi tabulkami podobné, dotaz vrátí hodnoty null na levé straně tabulky.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | LAPTOPID | NAME |
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 |
Příklad 2: Napište dotaz pro načtení ID zaměstnance, jména a příjmení z tabulky zaměstnance. Pravé vnější spojení na stole notebooku, kde název notebooku obsahuje jeden ze seznamů, je Dell, HP.
VYBERTE E. E. EMPLOYEEID, E. FIRST_NAME, E. LAST_NAME, E. SALARY, L. LAPTOPID, L. JMÉNO OD ZAMĚSTNANCŮ E RIGHT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE L.NAME IN (' DELL', 'HP');
Ve výše uvedeném dotazu jsme na stole notebooku zobrazili podrobnosti o zaměstnancích ze stolu zaměstnance. U těchto dvou tabulek jsme provedli dotaz na pravé vnější spojení pouze u zaměstnance, jehož jméno notebooku obsahuje jeden ze seznamů, je Dell a HP. Pokud nejsou řádky mezi tabulkami podobné, dotaz vrátí hodnoty null na levé straně tabulky.
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | LAPTOPID | NAME |
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 |
Úplné vnější spojení
Úplné vnější spojení spojuje výsledek obou spojení levého vnějšího spojení a pravého vnějšího spojení. Full Outer Join je stejný jako Cross Join. Úplné vnější spojení vrátí výstup, kde jsou řádky mezi tabulkami společné nebo neobvyklé.
Syntaxe úplného vnějšího spojení:
VYBERTE COLUMNNAME1, COLUMNNAME2 Z TABULKY 1 CELÉ PŘIPOJENÍ K TABULCE 2;
Příklad 1: Napište dotaz pro zobrazení ID zaměstnance, jména a příjmení z ID manažera z tabulky zaměstnanců úplné vnější spojení Tabulka manažerů, kde je plat zaměstnance vyšší než 65 000.
VYBERTE ID ZAMĚSTNANCE, FIRST_NAME, LAST_NAME, M.MANAGERID Z ZAMĚSTNANCŮ FULL JOIN MANAGER M WHERE SALARY> 65000;
Ve výše uvedeném dotazu jsme zobrazili podrobnosti o zaměstnancích a manažerech z tabulky zaměstnanců a manažerů, kde je plat zaměstnance vyšší než 65 000 při použití plného připojení. V plném rozsahu připojte každý řádek tabulky zaměstnance přes každý řádek tabulky manažera, tj. dojde ke kartézskému součinu. M * N
Výstup:
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | ID SPRÁVCE |
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 |
Jak vidíme, ID zaměstnance 1001 se křížově spojuje s každým ID manažera, stejně jako s ID zaměstnance 2002.
Příklad 2: Proveďte úplný dotaz vnějšího spojení na stole Zaměstnanci a na stole notebooku, kde je plat zaměstnance vyšší než 60 000 a umístění zaměstnance je Pune.
VYBERTE LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY FROM LAPTOP FULL PŘIPOJTE ZAMĚSTNANCE E WHERE SALAY> 60000 AND CITY ='PUNE';
Ve výše uvedeném dotazu zobrazujeme ID notebooku, ID zaměstnance, křestní jméno, plat a město ze všech zaměstnanců notebooku, kteří mají plat vyšší než 60 000 a město je Pune. Pokud se obě podmínky shodují pouze pro zaměstnance, záznam se načte.
Výstup:
Křížové připojení
Křížové spoje v SQL nejsou nic jiného než nazývané kartézský součin. Každý řádek jedné tabulky je zkombinován nebo sloučen s každým řádkem druhé tabulky. M * N je křížové spojení
Syntaxe křížového spojení:
VYBERTE COLUMNNAME1, COLUMNNAME2 Z TABULKY 1 CROSS JOIN TABLE2;
Příklad 1: Napište dotaz k provedení operace křížového spojení na tabulce zaměstnanců a tabulce manažerů, kde křestní jméno zaměstnance začíná na A
VYBERTE ID ZAMĚSTNANCE, FIRST_NAME, M.MANAGERID Z ZAMĚSTNANCŮ CROSS JOIN MANAGER M WHERE FIRST_NAME LIKE 'A%';
Ve výše uvedeném příkladu úplného vnějšího spojení jsme získali podrobnosti o zaměstnanci a podrobnosti o manažerovi z tabulky zaměstnanců a tabulky manažerů, ale pouze ty záznamy, kde křestní jméno zaměstnance začíná písmenem 'A'.
Výstup:
Výsledek ukazuje, že ID zaměstnance je křížové spojení s každým řádkem ID manažera.
M * N Zde M =3; ID zaměstnance z tabulek zaměstnanců
N =5; ID manažera z tabulky manažerů 3 * 5 =15 řádků.
Příklad 2: Napište dotaz k provedení operace křížového spojení na stole notebooku a stolu zaměstnanců, kde je plat zaměstnanců vyšší než 58 000 a Bombaj.
VYBERTE LAPTOPID, JMÉNO, E.ZAMĚSTNANCE Z LAPTOP CROSS PŘIPOJTE SE K ZAMĚSTNANCŮM E WHERE PLAT> 58000 AND CITY ='MUMBAI';
Ve výše uvedeném dotazu jsme zobrazili ID notebooku, jméno a ID zaměstnance z tabulky notebooku, abychom provedli operaci křížového spojení na stole zaměstnanců, kde je plat zaměstnance vyšší než 58 000 a město je Pune. Křížové spojení funguje jako M * N.
Výstup: