SQL-Statement mit Variable, INNER JOIN und IF-Statement.... wie machen?



  • Hallo Leute!
    mit raucht auchh schon der Kopf, obwohl es bestimmt nicht so komplizeirt ist, wenn man mehr Erfahrung hat. Also, die bisherige Abfrage sieht so aus (vereinfacht):

    SELECT id, bezeich, betrag, tbl2.bezeichnKT
    FROM tbl1
          INNER JOIN tbl1 ON tbl1.idRef_t2 = tbl2.id
    

    d.h. ich möchte zu einer Referenz-ID aus der ersten Tabelle die Bezeichnung des Eintrags aus der 2. Tabelle mit ausgeben. Nun hat aber nicht jeder Datensatz in tabelle 1 diese Referenz, soll aber auch dann ausgegeben werden.
    In der ersten Zeile müsste also anstatt jetzt tbl2.bezeichnKT eine Variable stehen. Dieser müsste null zugewiesen werden, wenn tbl1.idRef_t2 auch null ist, ansonsten eben besagte Bezeichnung aus 2. Tabelle. Das ganze muss also in irgendwie so aussehn, aber ich natürlich voller Fehler:

    SELECT id, bezeich, betrag, @bezeich
    FROM tbl1
    IF tbl1.idRef_t2 IS NOT NULL THEN
          INNER JOIN tbl1 ON tbl1.idRef_t2 = tbl2.id
          @bezeich = tbl2.bezeichnKT
    ELSE
          @bezeich = NULL
    END IF
    

    Wie muss ich die Variable deklarieren? Wie platziere ich genau die Abfrage?...
    Oder geht es auch einfacher?
    Ihr sehr, ich bin noch ziemlicher Anfänger in sql, aber ich brauche die Abfrage für ein C# projekt, deshalb kann ich jetzt nicht mit sql-Grundlagen lernen anfangen... ;/

    Danke für Eure Hilfe
    mit lieben Grüßen
    tobi 🙂



  • Hallo,

    dann verwende statt dem INNER JOIN ein LEFT JOIN (oder RIGHT JOIN, je nach Richtung - bin mir gerade nicht sicher):

    SELECT id, bezeich, betrag, tbl2.bezeichnKT
    FROM tbl1
          LEFT JOIN tbl1 ON tbl1.idRef_t2 = tbl2.id
    


  • WOW supi! 😃 Danke dir


Anmelden zum Antworten