Veröffentlicht 4. Januar 200817 j Tag, Ich hab das Problem, dass mein Select-Statement mit 2 Inner Joins in Access nicht aktzeptiert wird. Ich hab 3 Tabellen (LoadCarryingCapacity, LoadRanges und HitMainTypes) Tabelle LoadCarryingCapacity zeigt auf LoadRanges und diese wiederum auf HitMainTypes. Soweit klar. Nun möchte ich bestimme Datensätze in LoadCarryingCapacity, die einen Namen aus LoadRanges und einen aus HitMainTypes brauchen. Problem ist nur, dass Access bei meinem SELECT-Statement meckert, dass da ein Operator fehlt - ich weiß aber nicht wo. SELECT Height, M_Plus, M_Minus, V_Plus, V_Minus FROM LoadCarryingCapacity INNER JOIN LoadRanges ON (LoadCarryingCapacity.LoadRangeID = LoadRanges.ID) INNER JOIN HitMainTypes ON (LoadRanges.HitMainTypeID = HitMainTypes.ID) WHERE (LoadRanges.Name = '14/10') AND (HitMainTypes.Name = 'BD') Wäre dankbar für Vorschläge.
4. Januar 200817 j Autor Ok, ich hab es mal ganz trivial gelößt... SELECT * FROM LoadCarryingCapacity WHERE LoadRangeID = (SELECT ID FROM LoadRanges WHERE Name = '14/10' AND HitMainTypeID = (SELECT ID FROM HitMainTypes WHERE Name = 'BD')); :floet:
4. Januar 200817 j in der Access Hilfe unter "Inner Join" steht folgendes: SELECT Felder FROM Tabelle1 INNER JOIN (Tabelle2 INNER JOIN [( ]Tabelle3 [iNNER JOIN [( ]Tabellex [iNNER JOIN ...)] ON Tabelle3.Feld3 Vergleichsoperator Tabellex.Feldx)] ON Tabelle2.Feld2 Vergleichsoperator Tabelle3.Feld3) ON Tabelle1.Feld1 Vergleichsoperator Tabelle2.Feld2; Je nach Datenbanksystem sind Join-Operationen performanter als Subselects (bzw. können besser optimiert werden)
4. Januar 200817 j jup, die syntax wäre korrekt gewesen. Aber ich zweifle mal stark daran dass Access durch inner join performanter wird. übrigens, funktioniert diese syntax auch nicht immer. das hab ich mal am eigenen leib erfahren als ich meterlange Stored Procedures in Stored Querys übertragen musste
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.