MySQL: Wie bekomm ich diesen Join weg??
meisterB
- datenbank
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!
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
Danke, hat so geklappt...
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
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
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