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

SQL INTERSECT

Operátor SQL intersect se používá ke kombinaci dvou nebo více příkazů SELECT, ale zobrazuje pouze data podobná příkazu SELECT.

Syntaxe operace INTERSECT:

SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;

Pravidla pro použití operátoru INTERSECT jsou následující:

  1. Počet sloupců a pořadí sloupců musí být stejné.
  2. Typ dat musí být kompatibilní.

Pojďme pochopit koncept SQL INTERSECT pomocí příkladů.

Zvažte následující tabulky spolu s danými záznamy.

Tabulka 1:Student

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
1 NEHA 85 88 100 273
2 VISHAL 70 90 82 242
3 SAMKEET 75 88 96 259
4 NIKHIL 60 75 80 215
5 YOGESH 56 65 78 199
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
9 SANKET 86 78 65 229
10 PRACHI 90 80 75 245
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Tabulka 2:Stud

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
4 NIKHIL 60 75 80 215
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
102 SAMKEET 70 90 82 242
103 VISHAL 75 88 96 259
105 YOGESHWARI 56 65 78 199
106 VINAY 85 90 100 275
107 PRASHAKA 90 80 75 245
8 VINEET 85 90 100 275

Příklad 1: Proveďte dotaz pro provedení operace INTERSECT mezi tabulkou Student a tabulkou Stud.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

Ve výše uvedeném dotazu jsme použili dva dotazy SELECT. První SELECT dotaz načte data z tabulky Student. Provádí operaci INTERSECT s daty načtenými druhým SELECT dotazem, který získává data z tabulky Stud. Jsou vybrány pouze podobné záznamy mezi těmito dvěma tabulkami.

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

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
4 NIKHIL 60 75 80 215
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Jsou zobrazeny pouze společné záznamy mezi tabulkami studentů a tabulkami studů.

Příklad 2: Proveďte dotaz pro provedení operace INTERSECT mezi tabulkou Student a tabulkou Stud, ale zobrazte pouze ty záznamy studentů z tabulky Stud, kde jsou známky z matematiky rovny 100.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;

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

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
101 SNEHA 85 88 100 273

Jsou zobrazeny pouze záznamy těch studentů, jejichž matematické známky jsou rovné 100 z tabulky Stud a jsou společné pro tabulku Student i Stud.

Příklad 3: Proveďte dotaz pro provedení operace INTERSECT mezi tabulkou Student a tabulkou Stud, ale zobrazte pouze ty záznamy studentů z tabulky Student, kde jsou známky z chemie větší než 80.

SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;

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

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
101 SNEHA 85 88 100 273
103 VISHAL 75 88 96 259

Jsou zobrazeny pouze záznamy těch studentů, jejichž chemické známky jsou vyšší než 80 z tabulky Student a jsou společné pro tabulku Student i Stud.

Příklad 4: Proveďte dotaz pro provedení operace INTERSECT mezi tabulkou studenta a tabulkou stud a zobrazte pouze ty záznamy studentů, kde jsou známky z fyziky vyšší než 75 z tabulky studentů, a druhý výběr dotazů, které zobrazí pouze ty záznamy studentů, kde jsou známky z matematiky vyšší než 90 z tabulky studentů. Stud.

SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;

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

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS TOTAL_MARKS
6 ANKITA 95 85 96 276
7 SONAM 98 89 100 287
8 VINEET 85 90 100 275
101 SNEHA 85 88 100 273

Jsou zobrazeny pouze záznamy studentů, jejichž známky z fyziky jsou vyšší než 75 z tabulky studentů a známky z matematiky jsou vyšší než 90 z tabulky studujících a jsou společné pro tabulku studentů i studů.


  1. Chyba poskytovatele pojmenovaných kanálů poskytovatele 40 nemohla otevřít připojení k chybě serveru SQL Server 2

  2. Udržujte pořadí od klauzule „IN“.

  3. Kombinujte více podřízených řádků do jednoho řádku MYSQL

  4. Jak zobrazit řazení databáze v MySQL