Database
 sql >> Baza danych >  >> RDS >> Database

Rodzaje SQL JOIN

SQL JOIN łączy jedną lub więcej niż jedną tabelę na podstawie ich relacji. SQL JOIN obejmuje tabelę nadrzędną i relację tabeli podrzędnej.

Istnieją różne typy SQL JOINS:

  1. Łączenie wewnętrzne
  2. Lewe złącze zewnętrzne
  3. Prawe złącze zewnętrzne
  4. Pełne połączenie zewnętrzne
  5. Połączenie krzyżowe.

Zrozummy każdy typ złączeń SQL za pomocą przykładów.

Łączenie wewnętrzne

Złączenie wewnętrzne w SQL jest powszechnie używane. Pobrał wszystkie rekordy z obu tabel, dopóki warunek nie został spełniony. Oznacza to, że to połączenie zwróci tylko te wiersze, które są wspólne w obu tabelach.

Składnia wewnętrznego łączenia SQL:

SELECT  Nazwa_tabeli1.Nazwa_kolumny1,     Nazwa_tabeli1.Nazwa_kolumny2, Nazwa_tabeli1.Nazwa_kolumny3,Nazwa_tabeli2.Nazwa_kolumny1,Nazwa_tabeli2.Nazwa_kolumny2,Nazwa_Tabeli2.Nazwa_kolumny3, FROM_Nazwa_tabeli1 INNER JOIN =nNazwa_tabeli2Nazwa_tabeli2Nazwa_kolumny2.
 Weź pod uwagę już istniejące tabele, które zawierają określone dane:

Tabela 1:Pracownicy

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 65500 PUNE WYROCZNIA 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAJ C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4
4002 ASHWINI TORBA 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI WYROCZNIA 1
5001 ARCHIT SHARMA 55500 DELHI TESTOWANIE 4

Tabela 2:Menedżer

Identyfikator menedżera nazwa_menedżera manager_department
1 Snehdeep Kaur WYROCZNIA
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTOWANIE
5 Akasz Kadam C#

Tabela 3:Laptop:

LAPTOPID NAZWA ID PRACOWNIKA
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

Przykłady wewnętrznego łączenia SQL

Przykład 1: Wykonaj zapytanie, aby dołączyć do tabeli pracownika i tabeli menedżera i wyświetlić szczegóły pracowników, takie jak identyfikator pracownika, imię i nazwisko pracownika, wynagrodzenie z tabeli pracownika oraz identyfikator i nazwisko menedżera z tabeli menedżera.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_NAME OD PRACOWNIKÓW E WEWNĘTRZNY DOŁĄCZ DO MENEDŻERA M ON E.MANAGERID =M.MANAGERID;

W powyższym zapytaniu pobraliśmy id pracownika, imię, nazwisko, pensję z tabeli pracownika oraz id menedżera, nazwisko menedżera z tabeli menedżerów, gdzie kolumna identyfikator menedżera tabeli pracowników jest równa kolumnie identyfikator menedżera tabeli menedżera. Zapytanie zwróci wszystkie pasujące rekordy z obu tabel. Identyfikator menedżera to wspólna kolumna między obiema tabelami. E to alias tabeli pracownika, a M tabeli menedżera. Pole identyfikatora kierownika jest umieszczane jako klucz obcy w tabeli pracowników. Identyfikator menedżera działa jako klucz podstawowy w tabeli menedżera, co tworzy relację rodzic-dziecko między dwiema tabelami.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE IDENTYFIKATOR KIEROWCY MANAGER_NAME
1001 VAIBHAVI MISHRA 65500 1 Sneedeep Kaur
2001 PRACI SHARMA 55500 1 Sneedeep Kaur
4003 RUCHIKA AGARWAL 60000 1 Sneedeep Kaur
1003 NIKHIL VANI 50500 2 Kirti kirtane
2002 PRZYJMUJ SIĘ 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 TORBA 54500 3 Abhishek Manish
4001 RAJESH GOUD 60500 4 Anupam Mishra
5001 ARCHIT SHARMA 55500 4 Anupam Mishra
1002 VAIBHAV SHARMA 60000 5 Akasz Kadam
2003 RUCHIKA JAIN 50000 4 Akasz Kadam

Rekordy są wyświetlane w kolejności rosnącej według identyfikatora menedżera.

Przykład 2: Wykonaj zapytanie, aby dołączyć do tabeli Employee Table i Manager i wyświetlić szczegółowe informacje o pracowniku, takie jak identyfikator pracownika, imię i nazwisko pracownika, wynagrodzenie z tabeli pracownika oraz identyfikator kierownika i dział kierownika z tabeli kierownika, w której wynagrodzenie pracownika jest większe niż 58000.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, M.MANAGERID, M.MANAGER_DEPARTMENT FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE WHERE> 58000;
>

W powyższym zapytaniu pobraliśmy identyfikator pracownika, imię, nazwisko, wynagrodzenie z tabeli pracownika, identyfikator kierownika i dział kierownika z tabeli kierownik, gdzie identyfikator kierownika z tabeli pracowników jest równy identyfikatorowi kierownika z kierownika podaj tylko te rekordy pracowników, których wynagrodzenie jest większe niż 58000.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE IDENTYFIKATOR KIEROWCY MANAGER_DEPARTMENT
1001 VAIBHAVI MISHRA 65500 1 WYROCZNIA
4003 RUCHIKA AGARWAL 60000 1 WYROCZNIA
2002 PRZYJMUJ SIĘ JAIN 65500 2 FMW
3003 DEEPAM JAUHARI 58500 3 JAVA
4001 RAJESH GOUD 60500 4 TESTOWANIE
1002 VAIBHAV SHARMA 60000 5 C#

Wyświetlanych jest tylko sześć rekordów, w których wynagrodzenie pracownika przekracza 58000.

Przykład 3: Wykonaj zapytanie, aby połączyć tabelę pracowników i tabelę laptopów, wyświetl szczegóły pracownika, takie jak identyfikator pracownika, imię i nazwisko pracownika oraz wynagrodzenie, miasto z tabeli pracownika, identyfikator laptopa i nazwa laptopa z tabeli laptop

WYBIERZ.ID PRACOWNIKA, IMIĘ.PIERWSZEGO_PRACY, WYNAGRODZENIE.PRACA, MIASTO, OKRĄG.LAPTOPID, OKR. NAZWA OD PRACOWNIKÓW EMP WEWNĘTRZNY DOŁĄCZ DO LAPTOPA OKRĄŻENIE NA EMP.EMPLOYEEID =LAP.EMPLOYEEID;

W powyższym zapytaniu pobraliśmy id pracownika, imię, wynagrodzenie, miasto z tabeli pracowników id laptopa oraz imię i nazwisko z tabeli laptop gdzie id pracownika z tabeli pracownik jest równe id pracownika z tabeli laptop. Identyfikator pracownika to klucz obcy w tabeli Laptop, który tworzy relację nadrzędny-podrzędny między tabelą Employee a tabelą Laptop.

Wyjście:

ID PRACOWNIKA FIRST_NAME WYNAGRODZENIE MIASTO LAPTOPID NAZWA
1002 VAIBHAV 60000 NOIDA L102 HP
3003 DEEPAM 58500 MUMBAJ L104 HP
4002 ASHWINI 54500 NOIDA L105 DELL
4003 RUCHIKA 60000 DELHI L106 LENOVO
5001 ARCHIT 55500 DELHI L107 DELL

Wyświetlanych jest tylko pięć rekordów pracowników.

Przykład 4: Napisz zapytanie, aby wyświetlić identyfikator pracownika, imię, wynagrodzenie i dział z tabeli pracowników Identyfikator menedżera i nazwisko menedżera z tabeli menedżerów przy użyciu sprzężenia wewnętrznego, gdzie wynagrodzenie> 55000, a dział to Oracle.

WYBIERZ ID PRACOWNIKA, IMIĘ, WYNAGRODZENIE, DZIAŁ, M.MANAGERID, M.MANAGER_NAME FROM PRACOWNIKÓW E INNER JOIN MANAGER M ON E.MANAGERRID =M.MANAGERYD WHERE WYNAGRODZENIE> 55000 AND DZIAŁ ='ORACLE';

W powyższym przykładzie zapytania sprzężenia wyświetlamy szczegóły pracownika, takie jak identyfikator, imię i nazwisko, wynagrodzenie i dział z tabeli pracownika, identyfikator kierownika i nazwisko kierownika z tabeli kierownik, gdzie identyfikator kierownika z tabeli pracowników jest równy identyfikatorowi kierownika z kierownik tylko tych pracowników, których wynagrodzenie jest większe niż 55000, a działem jest Oracle.

Wyjście:

ID PRACOWNIKA FIRST_NAME WYNAGRODZENIE DZIAŁ IDENTYFIKATOR KIEROWCY MANAGER_NAME
1001 VAIBHAVI 65500 WYROCZNIA 1 Snehdeep Kaur
2001 PRACI 55500 WYROCZNIA 1 Snehdeep Kaur
4003 RUCHIKA 60000 WYROCZNIA 1 Snehdeep Kaur

Tylko trzech pracowników, których wynagrodzenie przekracza 55000, a dział to Oracle.

Przykład 5: Wykonaj zapytanie sprzężenia w tabeli Pracownicy, Menedżer i Laptop i wyświetl szczegóły pracowników, identyfikator menedżera i identyfikator laptopa.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, M.MANAGERID, L.LAPTOPID OD PRACOWNIKÓW E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID INNER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID; 

Powyższe zapytanie wyświetla identyfikator pracownika, imię, nazwisko, identyfikator kierownika i identyfikator laptopa z tabel pracowników, kierownika i laptopa. Dołączamy do trzech stołów. Identyfikator pracownika to wspólna kolumna między pracownikami a tabelą laptop i tworzy relację nadrzędny-podrzędny między tymi trzema tabelami. Między pracownikami i menedżerami identyfikator menedżera tabeli jest wspólną kolumną.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME IDENTYFIKATOR KIEROWCY LAPTOPID
4003 RUCHIKA AGARWAL 1 L106
3003 DEEPAM JAUHARI 3 L104
4002 ASHWINI TORBA 3 L105
5001 ARCHIT SHARMA 4 L107
1002 VAIBHAV SHARMA 5 L102

Połączenie zewnętrzne lewe

Lewe sprzężenie zewnętrzne zwróci wszystkie rekordy tabeli po lewej stronie sprzężenia i pasujące rekordy tabeli po prawej stronie sprzężenia. Zestaw wyników zawiera wartość null dla rekordów, które nie są powszechne po prawej stronie.

Składnia lewego sprzężenia zewnętrznego:

SELECT        Nazwa_tabeli1.Nazwa_kolumny1,     Nazwa_tabeli1.Nazwa_kolumny2, Nazwa_tabeli1.Nazwa_kolumny3,Nazwa_tabeli2.Nazwa_kolumny1,Nazwa_tabeli2.Nazwa_kolumny2,Nazwa_Tabeli2.Nazwa_kolumny3, FROM Nazwa_tabeli1 NAZWA_TABELI 1 NAZWA_TABELI NAZWA_KOLUMNY1. 

Rozważ istniejące tabele, które mają następujące rekordy:

Tabela 1:Pracownicy

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE MIASTO DZIAŁ IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 65500 PUNE WYROCZNIA 1
1002 VAIBHAV SHARMA 60000 NOIDA C# 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACI SHARMA 55500 CZANDIGAR WYROCZNIA 1
2002 PRZYJMUJ SIĘ JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAJ C# 5
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAJ JAVA 3
4001 RAJESH GOUD 60500 MUMBAJ TESTOWANIE 4
4002 ASHWINI TORBA 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI WYROCZNIA 1
5001 ARCHIT SHARMA 55500 DELHI TESTOWANIE 4

Tabela 2:Menedżer

Identyfikator menedżera nazwa_menedżera manager_department
1 Snehdeep Kaur WYROCZNIA
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra TESTOWANIE
5 Akasz Kadam C#

Tabela 3:Laptop

LAPTOPID NAZWA ID PRACOWNIKA
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

Przykłady lewego połączenia zewnętrznego SQL

Przykład 1: Wykonaj lewe zapytanie sprzężenia zewnętrznego w tabeli pracowników i tabeli Laptop, gdzie wyświetlany jest identyfikator pracownika, imię i nazwisko pracownika oraz identyfikator laptopa.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM PRACOWNIKÓW E LEWO ZEWNĘTRZNE DOŁĄCZ DO LAPTOPA L ON E.EMPLOYEEID =L.EMPLOYEEID; 

W powyższym zapytaniu wyświetliliśmy identyfikator pracownika, imię, nazwisko z identyfikatora laptopa pracownika i nazwisko z tabeli laptopa i wykonaliśmy zapytanie z lewym zewnętrznym sprzężeniem dla tych dwóch tabel. Zapytanie zwróci wartości null po prawej stronie tabeli, jeśli wiersze między tabelami nie są podobne.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME LAPTOPID NAZWA
1001 VAIBHAVI MISHRA NULL NULL
1002 VAIBHAV SHARMA L102 HP
1003 NIKHIL VANI NULL NULL
2001 PRACI SHARMA NULL NULL
2002 PRZYJMUJ SIĘ 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 TORBA L105 DELL
4003 RUCHIKA AGARWAL L106 LENOVO
5001 ARCHIT SHARMA L107 DELL

Przykład 2: Napisz zapytanie, aby pobrać identyfikator pracownika, imię, nazwisko, wynagrodzenie z tabeli pracownika, lewe sprzężenie zewnętrzne na stoliku laptopa, gdzie wynagrodzenie> 55000.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FROM PRACOWNIKÓW E LEWO ZEWNĘTRZNY DOŁĄCZ DO LAPTOP L ON E.EMPLOYEEID =L.PRACOWNIK GDZIE WYNAGRODZENIE> 55000;

W powyższym zapytaniu pobraliśmy szczegóły pracownika z tabeli pracowników i szczegóły laptopa z tabeli laptop, ale tylko te szczegóły pracownika, dla których wynagrodzenie jest większe niż 55000. Dla tych dwóch tabel wykonaliśmy zapytanie z lewym zewnętrznym sprzężeniem. Zapytanie zwróci wartości null po prawej stronie tabeli, jeśli wiersze między tabelami nie są podobne.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME WYNAGRODZENIE LAPTOPID NAZWA
1001 VAIBHAVI MISHRA 65500 NULL NULL
1002 VAIBHAV SHARMA 60000 L102 HP
2001 PRACI SHARMA 55500 NULL NULL
2002 PRZYJMUJ SIĘ 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

Prawe połączenie zewnętrzne

Prawe sprzężenie zewnętrzne zwróci wszystkie rekordy tabeli po prawej stronie sprzężenia i pasujące rekordy tabeli po lewej stronie sprzężenia. Zestaw wyników zawiera wartość null dla rekordów, które nie są powszechne po lewej stronie.

Składnia prawego sprzężenia zewnętrznego:

SELECT        Nazwa_tabeli1.Nazwa_kolumny1,     Nazwa_tabeli1.Nazwa_kolumny2, Nazwa_tabeli1.Nazwa_kolumny3,Nazwa_tabeli2.Nazwa_kolumny1,Nazwa_tabeli2.Nazwa_kolumny2,Nazwa_Tabeli2.Nazwa_kolumny3, FROM Nazwa_tabeli1 PRAWO Nazwa_tabeli1.Nazwa_tabeli1.Nazwa_tabeli W PRAWO . 

Przykłady prawego połączenia zewnętrznego SQL

Przykład 1: Wykonaj zapytanie prawego sprzężenia zewnętrznego na tabeli pracowników i tabeli laptopa, gdzie wyświetlany jest identyfikator pracownika, imię i nazwisko pracowników.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, L.LAPTOPID, L.NAME FROM PRACOWNIKÓW E Prawo OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID; 

W powyższym zapytaniu wyświetliliśmy identyfikator pracownika, imię, nazwisko z identyfikatora laptopa pracownika i nazwisko z tabeli laptopa i wykonaliśmy zapytanie prawego sprzężenia zewnętrznego na tych dwóch tabelach. Zapytanie zwróci wartości null po lewej stronie tabeli, jeśli wiersze między tabelami nie są podobne.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME LAPTOPID NAZWA
NULL NULL NULL L101 DELL
1002 VAIBHAV SHARMA L102 HP
NULL NULL NULL L103 LENOVO
3003 DEEPAM JAUHARI L104 HP
4002 ASHWINI TORBA 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

Przykład 2: Napisz zapytanie, aby pobrać identyfikator pracownika, imię i nazwisko z tabeli pracownika. Prawe złącze zewnętrzne na stole laptopa, gdzie nazwa laptopa zawiera jedną z list to Dell, HP.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, L.LAPTOPID, L.NAME FROM EMPLOYEES E RIGHT OUTER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID WHERE L.NAME IN (' DELL”, „HP”);

W powyższym zapytaniu wyświetliliśmy dane pracowników z tabeli pracownika szczegóły laptopa na stole laptopa. W przypadku tych dwóch tabel wykonaliśmy prawidłowe zapytanie dotyczące łączenia zewnętrznego tylko wtedy, gdy pracownik, którego nazwa laptopa zawiera jedną z list, to Dell i HP. Zapytanie zwróci wartości null po lewej stronie tabeli, jeśli wiersze między tabelami nie są podobne.

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME LAPTOPID NAZWA
NULL NULL NULL L101 DELL
1002 VAIBHAV SHARMA L102 HP
3003 DEEPAM JAUHARI L104 HP
4002 ASHWINI TORBA L105 DELL
5001 ARCHIT SHARMA L107 DELL
NULL NULL NULL L108 HP
NULL NULL NULL L109 DELL
NULL NULL NULL L110 HP

Pełne połączenie zewnętrzne

Full Outer Join scala wynik zarówno Left Outer Joins, jak i Right Outer Join. Pełne łączenie zewnętrzne jest takie samo jak łączenie krzyżowe. Full Outer Joins zwraca dane wyjściowe, w których wiersze między tabelami są wspólne lub rzadkie.

Składnia pełnego sprzężenia zewnętrznego:

WYBIERZ NAZWA KOLUMNY1, NAZWA KOLUMNY2 Z TABELI1 FULL JOIN TABLE2;

Przykład 1: Napisz zapytanie, aby wyświetlić identyfikator pracownika, imię, nazwisko z identyfikatora kierownika z tabeli pracownika pełne połączenie zewnętrzne Tabela kierownika, w której wynagrodzenie pracownika jest większe niż 65000.

WYBIERZ EMPLOYEEID, FIRST_NAME, LAST_NAME, M.MANAGERID OD PRACOWNIKÓW FULL JOIN MANAGER M WHERE PENSJONATY> 65000;

W powyższym zapytaniu wyświetliliśmy dane pracowników i dane menedżera z tabeli Pracownicy i menedżer, gdzie wynagrodzenie pracownika jest większe niż 65000 przy użyciu pełnego dołączenia. W pełni połącz każdy wiersz stołu pracownika w każdym wierszu stołu menedżera, tj. nastąpi iloczyn kartezjański. M * N

Wyjście:

ID PRACOWNIKA FIRST_NAME LAST_NAME IDENTYFIKATOR KIEROWCY
1001 VAIBHAVI MISHRA 1
1001 VAIBHAVI MISHRA 2
1001 VAIBHAVI MISHRA 3
1001 VAIBHAVI MISHRA 4
1001 VAIBHAVI MISHRA 5
2002 PRZYJMUJ SIĘ JAIN 1
2002 PRZYJMUJ SIĘ JAIN 2
2002 PRZYJMUJ SIĘ JAIN 3
2002 PRZYJMUJ SIĘ JAIN 4
2002 PRZYJMUJ SIĘ JAIN 5

Jak widać, identyfikator pracownika 1001 łączy się krzyżowo z każdym identyfikatorem kierownika, tak samo z identyfikatorem pracownika 2002.

Przykład 2: Wykonaj pełne zapytanie ze sprzężeniem zewnętrznym na tabeli pracowników i tabeli laptop, gdzie wynagrodzenie pracownika jest większe niż 60000, a lokalizacja pracownika to Pune.

WYBIERZ LAPTOPID, E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY FROM LAPTOP PEŁNA DOŁĄCZ DO PRACOWNIKÓW E WHERE WYNAGRODZENIE> 60000 I MIASTO ='PUNE';

W powyższym zapytaniu wyświetlamy identyfikator laptopa, identyfikator pracownika, imię, wynagrodzenie i miasto z pełnego laptopa dołączają do pracowników tylko tych, których wynagrodzenie jest większe niż 60000, a miasto to Pune. Jeśli oba warunki są zgodne dla tylko pracownika, rekord jest pobierany.

Wyjście:

Połączenie krzyżowe

Sprzężenia krzyżowe w SQL to nic innego jak produkt kartezjański. Każdy wiersz jednej tabeli jest łączony lub scalany z każdym wierszem drugiej tabeli. M * N jest krzyżem Dołącz

Składnia łączenia krzyżowego:

WYBIERZ NAZWA KOLUMNY1, NAZWA KOLUMNY2 Z TABELI1 POŁĄCZENIE KRZYŻOWE TABELA2;

Przykład 1: Napisz zapytanie, aby wykonać operację łączenia krzyżowego na tabeli pracowników i tabeli menedżerów, gdzie imię pracownika zaczyna się od A

WYBIERZ EMPLOYEEID, FIRST_NAME, M.MANAGERID Z PRACOWNIKÓW CROSS JOIN MANAGER M GDZIE FIRST_NAME LIKE 'A%';

W powyższym przykładzie zapytania z pełnym sprzężeniem zewnętrznym pobraliśmy dane pracownika i szczegóły menedżera z tabeli pracowników i menedżerów, ale tylko te rekordy, w których imię pracownika zaczyna się na literę „A”.

Wyjście:

Wynik pokazuje, że identyfikator pracownika jest sprzężeniem krzyżowym z każdym wierszem identyfikatora menedżera.

M * N Tutaj, M =3; identyfikator pracownika z tabel pracowników

N =5; identyfikator menedżera z tabeli menedżera 3 * 5 =15 wierszy.

Przykład 2: Napisz zapytanie, aby wykonać operację łączenia krzyżowego na stole laptopa i tabeli pracowników, gdzie wynagrodzenie pracownika jest większe niż 58000 i Bombaj.

WYBIERZ LAPTOPID, IMIĘ, E.EMPLOYEEID FROM LAPTOP CROSS DOŁĄCZ DO PRACOWNIKÓW E WHERE PENSJA> 58000 AND CITY ='MUMBAI';

W powyższym zapytaniu wyświetliliśmy identyfikator laptopa, imię i nazwisko oraz identyfikator pracownika z tabeli laptop, aby wykonać operację łączenia krzyżowego na tabeli pracowników, w której wynagrodzenie pracownika jest większe niż 58000, a miasto to Pune. Połączenie krzyżowe działa jak M * N.

Wyjście:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie domyślnego śladu – część 2

  2. Jak dodać kolumnę w SQL

  3. Podstawy wyrażeń tabelarycznych, część 12 – Wbudowane funkcje o wartościach tabelarycznych

  4. Przynieś własną chmurę dostępną dla DigitalOcean

  5. Podobieństwa i różnice między funkcjami RANK, DENSE_RANK i ROW_NUMBER