Vinzenz Mai: MySQL Unabfrage

Beitrag lesen

Hallo,

Wir gehen von folgender Beispieldatenbankstruktur aus

auftragnr | artikel

1000      | 23
1000      | 33
1000      | 34
1001      | 34
1002      | 23
1002      | 25
1003      | 24

Es sollen nun alle Zeilen mit Artikel "23" ausgegben werden und alle Zweilen, die diese Auftragnr haben.

auftragnr | artikel

1000      | 23
1000      | 33
1000      | 34
1002      | 23
1002      | 25

d.h. gib mir alle Artikel aus den Aufträgen, die Artikel 23 enthalten. Typischer Fall für ein Subselect:

SELECT                          -- gib mir  
    t1.auftragnr,               -- Auftragsnummer  
    t1.artikel                  -- und Artikel  
FROM                            -- aus  
    tabelle t1                  -- meiner Tabelle.  
WHERE                           -- Dabei interessieren mich nur  
    auftragnr IN (              -- die Aufträge,  
        SELECT                  -- die in der Liste  
            t2.auftragnr        -- der Aufträge enthalten sind  
        FROM  
            tabelle t2  
        WHERE                   -- die  
            t2.artikel = 23     -- Artikel 23 enthalten.  
    )  

Beachte zusätzlich die Hinweise zur Optimierung von Subselects mit IN-Operator.

Freundliche Grüße

Vinzenz