sql >> Databáze >  >> RDS >> Database

Jak používat INNER JOIN v SQL

V tomto článku se seznámíme s konceptem INNER JOIN a jak jej používat v SQL s klauzulí WHERE.

Co je INNER JOIN v SQL?

Vnitřní spojení je typ spojení v SQL. Inner Join v SQL je široce používané spojení. Toto spojení vrátí pouze ty řádky, které jsou společné v obou tabulkách. Vnitřní spojení se používá ke spojení dvou tabulek.

Syntaxe vnitřního spojení v SQL:

VYBERTE tabulku1.název_sloupce1, název_tabulky1.název_sloupce2, název_tabulky2.název_sloupce1,název_tabulky2.název_sloupce2 Z TAB. 

Table1.column =table2.column je společný sloupec, který udržuje vztah nadřazeného potomka mezi těmito dvěma tabulkami.

Existuje několik kroků, které musíme použít ve vnitřním spojení v dotazu SQL:

1. Vytvořte novou databázi nebo použijte existující databázi výběrem databáze pomocí klíčového slova USE následovaného názvem databáze.

2. Vytvořte novou tabulku ve vybrané databázi nebo můžete použít již vytvořenou tabulku.

3. Pokud je tabulka nově vytvořena, vložte záznamy do nově vytvořené databáze pomocí dotazu INSERT.

4. Prohlédněte si vložená data pomocí dotazu SELECT bez dotazu Inner Join.

5 Nyní jsme připraveni použít Inner Join v SQL dotazech.

Krok 1:Vytvořte novou databázi nebo použijte již vytvořenou databázi.

Již jsem vytvořil databázi. Použiji svůj existující vytvořený název databáze, Společnost.

USE Company;

Společnost je název databáze.

Ti, kteří si databázi nevytvořili, se při vytváření databáze řídí následujícím dotazem:

CREATE DATABASE název_databáze;

Po vytvoření databáze vyberte databázi pomocí klíčového slova USE následovaného názvem databáze.

Krok 2:Vytvořte novou tabulku nebo použijte již existující tabulku:

Již jsem vytvořil tabulku. Při provádění dotazu Inner Join použiji existující tabulku s názvem Zaměstnanci a manažer.

Chcete-li vytvořit novou tabulku, postupujte podle syntaxe CREATE TABLE:

CREATE TABLE název_tabulky(

název_sloupce1 datový typ (velikost sloupce),

název_sloupce2 datový typ (velikost sloupce),

název_sloupce3 datový typ (velikost sloupce) )

);

Krok 3:Vložte záznamy do nově vytvořené tabulky pomocí dotazu INSERT

Pro vložení nových záznamů do tabulky použijte níže uvedenou syntaxi:

INSERT INTO název_tabulky VALUES(hodnota1, hodnota2, hodnota3);

Krok 4: Zobrazte záznamy pomocí dotazu SELECT.

Zobrazte záznamy z tabulky pomocí následující syntaxe:

SELECT * FROM název_tabulky;

Následující dotaz zobrazí záznamy zaměstnanců.

SELECT * FROM Zaměstnanci;

Výstup výše uvedeného dotazu SELECT je:

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
5002 SANKET CHAUHAN 70 000 HYDERABÁD JAVA 3
5003 ROSHAN NEHTE 48500 CHANDIgarH C# 5
6001 RAHUL NIKAM 54500 BANGALOR TESTOVÁNÍ 4
6002 ATISH JADHAV 60500 BANGALOR C# 5
6003 NIKITA INGALE 65 000 HYDERABÁD ORACLE 1

Následující dotaz zobrazí záznamy správce.

SELECT * FROM Manager;

Výstup výše uvedeného dotazu SELECT je:

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#

Následující dotaz zobrazí záznamy o Laptopu.

SELECT * FROM Laptop;

Výstup výše uvedeného dotazu SELECT je:

LAPTOPID NAME ID ZAMĚSTNANCE
101 DELL NULL
102 HP 1002
103 LENOVO NULL
104 HP 3003
105 DELL 4002
106 LENOVO 4003
107 DELL 5001
108 HP NULL
109 DELL NULL
110 HP NULL
111 LENOVO 2002
112 LENOVO 6003
113 HP 1003

Krok 5:Jsme připraveni použít INNER JOIN v dotazech

Pojďme pochopit Vnitřní spojení pomocí příkladů.

Příklad 1: Napište dotaz pro zobrazení ID zaměstnance, jména, příjmení, platu, města z tabulky zaměstnance a ID manažera a jména manažera z tabulky manažera pomocí Vnitřní spojení.

VYBRAT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, E.CITY, 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, město 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ů. Sloupec ID manažera funguje jako cizí klíč v tabulce zaměstnance. ID správce funguje jako primární klíč v tabulce správce, což vytváří vztah rodič-dítě mezi dvěma tabulkami.

Výstup výše uvedeného dotazu je:

ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIgarH ORACLE 1
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
6003 NIKITA INGALE 65 000 HYDERABÁD ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2002 BHAVESH JAIN 65500 PUNE FMW 2
3002 ANUJA WANRE 50500 JAIPUR FMW 2
3001 PRANOTI SHENDE 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4002 ASHWINI BAGHAT 54500 NOIDA JAVA 3
5002 SANKET CHAUHAN 70 000 HYDERABÁD JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTOVÁNÍ 4
5001 ARCHIT SHARMA 55500 DELHI TESTOVÁNÍ 4
6001 RAHUL NIKAM 54500 BANGALOR TESTOVÁNÍ 4
1002 VAIBHAV SHARMA 60 000 NOIDA C# 5
2003 RUCHIKA JAIN 50 000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIgarH C# 5
6002 ATISH JADHAV 60500 BANGALOR C# 5

Záznamy se zobrazují ve vzestupném pořadí podle výchozího ID správce.

Příklad 2: Napište dotaz pro zobrazení ID zaměstnance, jména, příjmení, města a oddělení z tabulky zaměstnance a ID manažera a jména manažera z tabulky manažerů pomocí Inner Join, kde oddělení zaměstnanců je C#.

VYBRAT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.CITY, E.DEPARTMENT, M.MANAGERID, M.MANAGER_NAME Z ZAMĚSTNANCŮ E VNITŘNÍ SPRÁVCE PŘIPOJENÍ M NA E.MANAGERID =M.MANAGERID WHERE DEPARTMENT =' C#';

Ve výše uvedeném dotazu jsme získali ID zaměstnance, jméno, příjmení, město 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á pouze ID manažera z tabulky manažera ty záznamy zaměstnanců, jejichž oddělením zaměstnanců je C#.

Výstup výše uvedeného dotazu je:

ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE
1002 VAIBHAV SHARMA 60 000 NOIDA C# 5
2003 RUCHIKA JAIN 50 000 MUMBAI C# 5
5003 ROSHAN NEHTE 48500 CHANDIgarH C# 5
6002 ATISH JADHAV 60500 BANGALOR C# 5

Ve výše uvedeném výstupu vidíme pouze ty záznamy, které jsou získávány od zaměstnanců, jejichž oddělení je C#. Klauzuli WHERE používáme se spojením INNER.

Příklad 3: Napište dotaz pro zobrazení ID zaměstnance, jména, platu, města a oddělení ze stolu zaměstnance a ID notebooku a názvu notebooku ze stolu s notebookem pomocí Inner Join.

VYBERTE E.EMPLOYEEID, E.FIRST_NAME, E.PLAT, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME Z ZAMĚSTNANCŮ E INNER JOIN LAPTOP L ON E.EMPLOYEEID =L.EMPLOYEEID;

Ve výše uvedeném dotazu jsme získali ID zaměstnance, jméno, plat, město a oddělení ze stolu zaměstnanců a ID notebooku a jméno z tabulky notebooku, kde se ID zaměstnance z tabulky zaměstnanců 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ěstnanec a tabulkou Laptop.

Výstup výše uvedeného dotazu je:

ID ZAMĚSTNANCE FIRST_NAME PLAT MĚSTO ODDĚLENÍ LAPTOPID NAME
1002 VAIBHAV 60 000 NOIDA C# 102 HP
3003 DEEPAM 58500 MUMBAI JAVA 104 HP
4002 ASHWINI 54500 NOIDA JAVA 105 DELL
4003 RUCHIKA 60 000 DELHI ORACLE 106 LENOVO
5001 ARCHIT 55500 DELHI TESTOVÁNÍ 107 DELL
2002 BHAVESH 65500 PUNE FMW 111 LENOVO
6003 NIKITA 65 000 HYDERABÁD ORACLE 112 LENOVO
1003 NIKHIL 50500 JAIPUR FMW 113 HP

V daném výstupu jsou zobrazeny pouze ty záznamy, ke kterým je Laptop přiřazen.

Příklad 4: Napište dotaz pro zobrazení ID zaměstnance, jména, platu a oddělení z tabulky zaměstnanců a ID manažera a jména manažera z tabulky manažerů pomocí vnitřního spojení, kde plat> 57000 nebo oddělení je Oracle.

ZVOLTE ZAMĚSTNANCE ID, PRVNÍ 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> 57000 NEBO ODDĚLENÍ ='pre>ORACLE';

Ve výše uvedeném dotazu jsme získali ID zaměstnance, křestní jméno, plat a oddělení z tabulky zaměstnanců a ID manažera a jméno manažera z tabulky manažerů, kde ID manažera z tabulky zaměstnanců se rovná ID manažera od manažera pouze těm zaměstnancům, jejichž plat je vyšší než 57 000 nebo oddělení je Oracle.

Výstup výše uvedeného dotazu je:

ID ZAMĚSTNANCE FIRST_NAME LAST_NAME PLAT MĚSTO ODDĚLENÍ ID SPRÁVCE
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 CHANDIgarH ORACLE 1
4003 RUCHIKA AGARWAL 60 000 DELHI ORACLE 1
6003 NIKITA INGALE 65 000 HYDERABÁD ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
5002 SANKET CHAUHAN 70 000 HYDERABAD JAVA 3
4001 RAJESH GOUD 60500 MUMBAI TESTOVÁNÍ 4
1002 VAIBHAV SHARMA 60 000 NOIDA C# 5
6002 ATISH JADHAV 60500 BANGALOR C# 5

Ve výše uvedeném výstupu jsou zobrazeny pouze záznamy o zaměstnancích, jejichž plat je vyšší než 57 000 nebo je oddělení zaměstnanců 'Oracle'. Operátor OR zobrazí záznamy, pokud je jedna z podmínek uvedených v dotazu pravdivá.


  1. Předcházení problémům s výkonem při trhání kolenem

  2. Podívejte se na mou prezentaci „Optimalizace Microsoft Access pomocí SQL Serveru“.

  3. Aktualizovat dotaz pro aktualizaci řádků v MySQL

  4. Proč heslo password_verify vrací hodnotu false?