Suche…


Unterabfragen

Eine Unterabfrage ist eine Abfrage in einer anderen SQL-Abfrage. Eine Unterabfrage wird auch als innere Abfrage oder innere Auswahl bezeichnet. Die Anweisung, die eine Unterabfrage enthält, wird als äußere Abfrage oder äußere Auswahl bezeichnet.

Hinweis

  1. Unterabfragen müssen in Klammern stehen.
  2. Ein ORDER BY kann nicht in einer Unterabfrage verwendet werden.
  3. Der Bildtyp wie BLOB, Array, Textdatentypen ist in Unterabfragen nicht zulässig.

Unterabfragen können mit select-, insert-, update- und delete-Anweisungen verwendet werden, in denen die select-Klausel zusammen mit IN, Vergleichsoperatoren usw. enthalten ist.

Wir haben eine Tabelle namens ITCompanyInNepal, in der Abfragen ausgeführt werden, um Beispiele für Unterabfragen anzuzeigen:

Geben Sie hier die Bildbeschreibung ein

Beispiele: SubQueries mit Select-Anweisung

mit In Operator und Where- Klausel:

SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter 
                      FROM ITCompanyInNepal
                      WHERE Headquarter = 'USA');

mit Vergleichsoperator und Where- Klausel

SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee) 
                          FROM ITCompanyInNepal
                      )

mit Select- Klausel

SELECT   CompanyName,
         CompanyAddress,
         Headquarter,
         (Select SUM(NumberOfEmployee)
         FROM ITCompanyInNepal
         Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM     ITCompanyInNepal 
WHERE    CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'

Unterabfragen mit insert-Anweisung

Wir müssen Daten aus der IndianCompany-Tabelle in ITCompanyInNepal einfügen. Die Tabelle für IndianCompany wird unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

INSERT INTO ITCompanyInNepal
SELECT * 
FROM IndianCompany

Unterabfragen mit Update-Anweisung

Angenommen, alle Unternehmen mit Hauptsitz in den USA haben sich entschlossen, 50 Angestellte aller US-amerikanischen Unternehmen in Nepal zu entlassen, weil sich die Politik der US-Unternehmen geändert hat.

UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter 
                      FROM ITCompanyInNepal 
                      WHERE Headquarter = 'USA')

Unterabfragen mit Delete-Anweisung

Angenommen, alle Unternehmen mit Hauptsitz in Dänemark haben beschlossen, ihre Unternehmen aus Nepal zu schließen.

DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter 
                     FROM ITCompanyInNepal
                     WHERE Headquarter = 'Denmark')


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow