sql >> Database >  >> RDS >> Database

SQL INTERSECT

SQL intersect-operator wordt gebruikt om twee of meer SELECT-instructies te combineren, maar het geeft alleen de gegevens weer die vergelijkbaar zijn met de SELECT-instructie.

De syntaxis voor de INTERSECT-bewerking:

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

Regels die moeten worden gevolgd met de INTERSECT-operator zijn als volgt:

  1. Het aantal kolommen en de volgorde van kolommen moet hetzelfde zijn.
  2. Gegevenstype moet compatibel zijn.

Laten we het concept van SQL INTERSECT begrijpen met behulp van voorbeelden.

Bekijk de volgende tabellen samen met de gegeven records.

Tabel 1:Leerling

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

Tabel 2:Dekhengst

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

Voorbeeld 1: Voer een query uit om de INTERSECT-bewerking uit te voeren tussen de studententafel en de Stud-tafel.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

In de bovenstaande query hebben we twee SELECT-query's gebruikt. De eerste SELECT-query haalt de gegevens op uit de tabel Student. Het voert de INTERSECT-bewerking uit met de gegevens die zijn opgehaald door de tweede SELECT-query die de gegevens uit de Stud-tabel ophaalt. Alleen vergelijkbare records tussen deze twee tabellen worden geselecteerd.

De uitvoer van de bovenstaande zoekopdracht is:

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

Alleen gemeenschappelijke records tussen de Student Table en de Stud-tafels worden weergegeven.

Voorbeeld 2: Voer een query uit om de INTERSECT-bewerking uit te voeren tussen Studententabel en Stud-tabel, maar geef alleen die Student-records uit de Stud-tabel weer waar wiskundecijfers gelijk zijn aan 100.

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

De uitvoer van de bovenstaande zoekopdracht is:

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

Alleen de records van de studenten worden weergegeven waarvan de wiskundecijfers gelijk zijn aan 100 uit de Stud-tabel en die gemeenschappelijk zijn voor zowel de Student- als de Stud-tabel.

Voorbeeld 3: Voer een query uit om de INTERSECT-bewerking uit te voeren tussen Studententafel en Stud-tabel, maar toon alleen die Studentrecords van de Studententabel waar scheikundecijfers groter zijn dan 80.

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

De uitvoer van de bovenstaande zoekopdracht is:

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

Alleen de records van de studenten worden weergegeven waarvan de scheikundecijfers hoger zijn dan 80 uit de studententabel en die gemeenschappelijk zijn tussen zowel de studenten- als de studtafel.

Voorbeeld 4: Voer een query uit om de INTERSECT-bewerking uit te voeren tussen de studententabel en de Stud-tabel en geef alleen die studentrecords weer waarvan de natuurkundecijfers groter zijn dan 75 van de studententabel, en selecteer vervolgens de query's die alleen die studentrecords weergeven waar de wiskundecijfers groter zijn dan 90 van de Dekhengst.

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

De uitvoer van de bovenstaande zoekopdracht is:

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

Alleen de records van de studenten worden weergegeven waarvan de natuurkundecijfers hoger zijn dan 75 uit de studententabel en de wiskundecijfers hoger zijn dan 90 uit de dektabel en zijn gemeenschappelijk voor zowel de student- als de stuwtafel.


  1. 4 manieren om alle tabellen in een MySQL-database weer te geven

  2. Hoe geef ik waarde door aan een opgeslagen procedureparameter in de OLE DB Source-component?

  3. BatchUpdateException:de batch wordt niet beëindigd

  4. Beste nieuwe functies in PostgreSQL 14