meisterB: MySQL: Wie bekomm ich diesen Join weg??

Hallo Leute, ich hab ein Problem.
Ich möchte ein Auswahlfeld Abhängug befüllen. Nun bokomme ich aber bei mehr als einer 1Tier_Nr einen Join raus (alles mit allem verbunden)! Was ist falsch??
So sieht die SQL-Syntax aus:

SELECT produkt_Nr, produktname, Einbauortname FROM tab_1tier_prod, tab_1tier_einbauort WHERE tab_1tier_prod.Einbauort_Nr=tab_1tier_einbauort.Einbauort_Nr AND 1Tier_Nr=91 OR 1Tier_Nr=92

Danke im Vorraus!

  1. Huhu Sebastian

    Was ist falsch??

    vermutlich musst Du in Deiner Where-Bedingung noch Klammern ergänzen.

    Statt

    a AND b OR C

    meinst Du vermutlich dieses

    a AND (b OR c)

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Danke, hat so geklappt...

  2. Versteh jetzt zwar nicht genau was ausgegeben werden soll, aber hier ein vorschlag:
    SELECT produkt_Nr, produktname, Einbauortname FROM tab_1tier_prod LEFT JOIN tab_1tier_einbauort USING (Einbauort_Nr) WHERE 1Tier_Nr=91 OR 1Tier_Nr=92;

    mfg
    thomas

    1. Hallo Thomas

      SELECT produkt_Nr, produktname, Einbauortname FROM tab_1tier_prod LEFT JOIN tab_1tier_einbauort USING (Einbauort_Nr) WHERE 1Tier_Nr=91 OR 1Tier_Nr=92;

      USING muss ich bisher immer übersehen haben und bietet eine Vereinfachung der Schreibweise. Danke, wieder etwas dazugelernt?

      Weißt Du etwas über die Kompatibilität von USING mit anderen SQL-Dialekten?

      Freundliche Grüße

      Vinzenz

  3. Hallo meisterB

    Ich möchte ein Auswahlfeld Abhängug befüllen. Nun bokomme ich aber bei mehr als einer 1Tier_Nr einen Join raus (alles mit allem verbunden)! Was ist falsch??

    Verwende doch die JOIN-Syntax :-)
    Dazu noch IN-Operator und Tabellen-Alias mit AS:

    SELECT produkt_Nr, produktname, Einbauortname FROM tab_1tier_prod, tab_1tier_einbauort WHERE tab_1tier_prod.Einbauort_Nr=tab_1tier_einbauort.Einbauort_Nr AND 1Tier_Nr=91 OR 1Tier_Nr=92

    SELECT produkt_Nr, produktname, Einbauortname
    FROM tab_1tier_prod AS tp
    INNER JOIN tab_1tier_einbauort AS to
    ON tp.Einbauort_Nr = to.Einbauort_Nr
    WHERE 1Tier_Nr IN (91,92)

    Ist das nicht viel einfacher zu lesen und nachzuvollziehen?

    Freundliche Grüße

    Vinzenz