Vinzenz Mai: zwei SQL Abfragen verbingen

Beitrag lesen

Hallo,

SELECT id, feld1 FROM tab1 WHERE var = 'xx';

2.Abfrage
SELECT feld2, feld3 FROM tab2 WHERE sid = 'id der ersten Abfrage';

Wenn ja, wie stelle ich dass an?

mit einem Join

SELECT  
    tab2.feld2,  
    tab2.feld3  
FROM  
    tab2  
INNER JOIN  
    tab1  
ON  
    tab2.sid = tab1.id  
WHERE  
    tab1.var = <wert>  

oder einem Subselect.

SELECT  
    tab2.feld2,  
    tab2.feld3  
FROM  
    tab2  
WHERE  
    sid IN (                -- Beachte: es könnte mehr als eine ID  
                            -- den gewünschten Wert haben  
         SELECT  
            id  
        FROM  
            tab1  
        WHERE  
            var = <wert>  
    )  

EXPLAIN (bzw. das vergleichbare Werkzeug Deines Datenbankmanagementsystems) kann Dir sagen, was bei Deinen Tabellen effizienter ist.

Freundliche Grüße

Vinzenz