dobra: mySQL Abfrage über 2 Tabellen

Hallo,

kann mir bitte jemand helfen - ich kriegs nicht hin :'(

Mein Problem:

Ich habe eine Artikelnr. die sowohl zu einem Artikel als auch zu einer Artikel-Variante passen kann.

Ist die Artikelnr ($ItemID) eine Variante, bekomme ich die Werte mit
SELECT CSVMENGE, HARTNR FROM $SITM WHERE ITEMID = "$ItemID"
ist es ein Artikel mit
SELECT CSVMENGE, HARTNR FROM $ITEM WHERE ITEMID = "$ItemID"

Meine Versuche

SELECT $ITEM.CSVMENGE, $ITEM.ARTNR FROM $SITM INNER JOIN $ITEM ON $SITM.ITEMID = $ITEM.ITEMID WHERE ($SITM.ITEMID = "$ItemID" OR $ITEM.ITEMID = "$ItemID")

SELECT CSVMENGE, ARTNR FROM $SITM LEFT JOIN $ITEM ON $ITEM.ITEMID = $SITM.ITEMID WHERE ITEMID = "$ItemID"

SELECT CSVMENGE, ARTNR FROM $SITM INNER JOIN $ITEM ON $ITEM.ITEMID = $SITM.ITEMID WHERE ITEMID = "$ItemID"

SELECT $SITM.CSVMENGE, $SITM.ARTNR, $ITEM.CSVMENGE, $ITEM.ARTNR FROM $SITM INNER JOIN $ITEM ON $ITEM.ITEMID = $SITM.ITEMID WHERE ($SITM.ITEMID = "$ItemID" OR $ITEM.ITEMID = "$ItemID")

(und noch ein paar ebenso falsche)
bringen aber immer nur "undefined"

Wie muss ich das Statement richtig schreiben ?

lg
dobra

  1. sorry - Tippfehler:
    HARTNR = ARTNR

  2. Hallo,

    Ich habe eine Artikelnr. die sowohl zu einem Artikel als auch zu einer Artikel-Variante passen kann.

    das ist die Ausgangslage. Was möchtest Du denn als Ergebnis haben.

    Ist die Artikelnr ($ItemID) eine Variante, bekomme ich die Werte mit
    SELECT CSVMENGE, HARTNR FROM $SITM WHERE ITEMID = "$ItemID"
    ist es ein Artikel mit
    SELECT CSVMENGE, HARTNR FROM $ITEM WHERE ITEMID = "$ItemID"

    [... ein paar Statements entfernt ...]

    bringen aber immer nur "undefined"

    undefined ist keine übliche Antwort eines Datenbankservers auf eine Query

    Vermutlich möchtest Du in Deinem Abfrageergebnis sowohl die passenden Zeilen aus der Tabelle der Varianten als auch die passenden Zeilen aus der Tabelle der Artikel. Wenn ich mit meiner Vermutung richtig liege, dann willst Du eine UNION verwenden:

    SELECT  
        CSVMENGE,      -- komplett groß geschriebene Spaltennamen sind unüblich  
        HARTNR         -- und erschweren die Lesbarkeit  
    FROM  
        $SITM          -- ein zulässiger, wenn auch ungewöhnlicher Tabellenname  
    WHERE  
        ITEMID = '$ItemID'  -- MySQL ist das einzige mir bekannte DBMS, das  
                            -- doppelte Anführungszeichen als Begrenzer von  
                            -- Zeichenketten erlaubt. Gewöhne Dir daher besser an,  
                            -- grundsätzlich mit einfachen Anführungszeichen  
                            -- zu arbeiten.  
    [link:http://dev.mysql.com/doc/refman/5.1/en/union.html@title=UNION ALL]  
      
    SELECT  
        CSVMENGE,  
        HARTNR  
    FROM  
        $ITEM  
    WHERE  
        ITEMID = '$ItemID'  
    
    

    sollte dann liefern, was Du haben willst.

    Freundliche Grüße

    Vinzenz

    1. Vielen lieben Danke für die superschnelle Hilfe

      SO funktioniert es wie es soll :)

      DANKE !!!
      (auch für die Tipps in den Kommentaren)