Vinzenz Mai: fehler in sql syntax?

Beitrag lesen

Hallo

hier mal das statement:

das syntaktisch richtig aussieht, aber neben dem bereits gesagten

SELECT  
    best.id_bestellvorgang,  
    best.id_dienststelle,  
    best.id_lieferant,  
    best.id_art_garantie,  
    best.id_art_beschaffung,  
    best.kennzeichen,  
    best.datum_lieferung,  
    best.beschreibung,  
    best.preis,  
    best.dauer_garantie,  
    best.dauer_gewaehrleistung,  
    best.reaktionszeit,  
    best.instandsetzungsdauer,  
    best.status,  
    best.ware,  
    best.seriennummer,  
    best.vertrag_intern,  
    best.vertrag_extern,  
    inst.id_bestellvorgang,  
    inst.id_dienststelle  
FROM  
    bestellvorgang best,  
    installationsort inst  
WHERE  
    best.id_bestellvorgang > 0  
    AND best.id_art_beschaffung = 1  

vermisse ich die JOIN-Klausel

Da Du keine Fehler von Deinem DBMS gemeldet bekommst, gehe ich davon aus,
dass es einfach keine Datensätze gibt.

Eine mögliche Erklärung wäre folgende:
Da Du die JOIN-Klausel weglässt, wird das kartesische Produkt beider Tabellen gebildet. Wenn es in der Tabelle installationsort keinen Datensatz gibt, dann kann es in der Ergebnismenge keinen Datensatz geben. Möchtest Du alle Datensätze haben, auch denen kein Datensatz in der Tabelle installationsort zugeordnet ist, dann wäre ein LEFT JOIN angebracht:

SELECT  
    best.id_bestellvorgang,  
    best.id_dienststelle,  
    best.id_lieferant,  
    best.id_art_garantie,  
    best.id_art_beschaffung,  
    best.kennzeichen,  
    best.datum_lieferung,  
    best.beschreibung,  
    best.preis,  
    best.dauer_garantie,  
    best.dauer_gewaehrleistung,  
    best.reaktionszeit,  
    best.instandsetzungsdauer,  
    best.status,  
    best.ware,  
    best.seriennummer,  
    best.vertrag_intern,  
    best.vertrag_extern,  
    inst.id_bestellvorgang,  
    inst.id_dienststelle  
FROM  
    bestellvorgang best  
LEFT JOIN  
    installationsort inst  
ON best.id_bestellvorgang = inst.id_bestellvorgang  
WHERE  
    best.id_bestellvorgang > 0  
    AND best.id_art_beschaffung = 1  

Mehr zu JOINs gibts auf SELFHTML aktuell:

Freundliche Grüße

Vinzenz