pc-nico Geschrieben 4. September 2007 Teilen Geschrieben 4. September 2007 Hallo habe folgendes Problem: Ich habe 3 Tabellen: Projekte Projekt_ID Projekt Taetigkeiten Taetigkeit_ID Taetigkeit Projekttaetigkeiten Projekt_ID Taetigkeit_ID In der 3. Tabelle werden den Projekten Tätigkeiten zugeordnet... Ich möchte jetzt abfragen, welche Projekte zu einer Tätigkeit gehören... Leider liefert die Abfrage nicht das gewünschte Ergebnis... SELECT PROJEKT, TAETIGKEIT FROM projekte LEFT JOIN projekttaetigkeiten ON projekte.PROJEKT_ID = projekttaetigkeiten.PROJEKT_ID LEFT JOIN taetigkeiten ON projekttaetigkeiten.TAETIGKEIT_ID = taetigkeiten.TAETIGKEIT_ID WHERE projekttaetigkeiten.TAETIGKEIT_ID =1 LIMIT 0 , 30 sieht jemand den Fehler? bitte mal nach Datenbanken verschieben.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
P3AC3MAK3R Geschrieben 4. September 2007 Teilen Geschrieben 4. September 2007 Leider liefert die Abfrage nicht das gewünschte Ergebnis... Was bedeutet das genau? Wie sieht das Ergebnis aus? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schmarrer Geschrieben 4. September 2007 Teilen Geschrieben 4. September 2007 Auf die Schnelle und ohne zu Testen gemacht!!! SELECT Taet.Taetigkeit FROM Projekttaetigkeiten ProTaet INNER(LEFT) JOIN Projekte Pro on Pro.Projekt_ID = ProTaet.Projekt_ID INNER(LEFT) JOIN Taetigkeiten Taet on Taet.Taetigkeiten_ID = Taet.Taetigkeiten_ID WHERE Pro.Projekt_ID = 1 Soo sollte die Abfrage meines Wissens nach Funktionieren (das Beispiel ist jetzt auf den MS SQL-Server bezogen). Als Ergebnis solltest du alle Tätigkeiten bekommen, die dem Projekt 1 zugeordnet sind. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 4. September 2007 Autor Teilen Geschrieben 4. September 2007 sorry, hab mich vllt nicht genau genug ausgedrückt.... ich habe die ID einer Tätigkeit... jetzt möchte ich als Abfrage-Ergebnis alle Projektnamen und Projekt_IDs haben, die mit der Tätigkeit in Verbindung stehen (die Verbindung erzeugt die Tabelle Projekttätigkeiten...) also genau umgedreht, als die letzte Antwort von Schmarrer Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schmarrer Geschrieben 4. September 2007 Teilen Geschrieben 4. September 2007 Naja dann änder meine Abfrage um.... sollte dann so funktionieren SELECT Pro.Projekt_ID, Pro.Projekt FROM Projekttaetigkeiten ProTaet INNER(LEFT) JOIN Projekte Pro on Pro.Projekt_ID = ProTaet.Projekt_ID INNER(LEFT) JOIN Taetigkeiten Taet on Taet.Taetigkeiten_ID = Taet.Taetigkeiten_ID WHERE Taet.Taetigkeit_ID = 1 Das Ergebnis sind alle Projekte_ID´s und Projektnamen, welche mt der Tätigkeit 1 verknüpft sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 5. September 2007 Autor Teilen Geschrieben 5. September 2007 Hey hab die Abfrage mal für MySQL umgeschrieben... aber irgendwie geht das nicht... :-( SELECT Projekte.Projekt_ID, Projekte.Projekt FROM Projekttaetigkeiten LEFT JOIN Projekte on Projekt.Projekt_ID = Projekttaetigkeiten.Projekt_ID LEFT JOIN Taetigkeiten [B]on Taetigkeiten.Taetigkeiten_ID = Taetigkeiten.Taetigkeiten_ID[/B] WHERE Taetigkeiten.Taetigkeit_ID = 1 Die Fett gedruckte Zeile ist doch auch falsch oder? müsse doch bestimmt on Taetigkeiten.Taetigkeit_ID = Projekttaetigkeiten.Taetigkeit_ID heißen... aber auch damit bekomme ich den Fehler: #1054 - Unknown column 'Projekte.Projekt_ID' in 'field list' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 5. September 2007 Autor Teilen Geschrieben 5. September 2007 mir fällt gerade auf, das man die Tabelle Tätigkeit doch eigentlich gar nicht für die Abfrage braucht...:upps ich habe doch nur eine Tätigkeits ID und will dazu den Projektnamen... dann müsste die Abfrage meinen Verständnis nach so aussehen... SELECT PROJEKT, PROJEKT_ID FROM `projekttaetigkeiten` left join projekte on projekttaetigkeiten.PORJEKT_ID = projekte.PROJEKT_ID where `TAETIGKEIT_ID` = 6; Aber das geht nicht: #1052 - Column 'PROJEKT_ID' in field list is ambiguous lasse ich PROJEKT_ID im select bereich weg bekomme ich: #1054 - Unknown column 'Projekttaetigkeiten.PORJEKT_ID' in 'on clause' :rolleyes: ich glaub ich habe gerade ein Brett vom Kopf.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
P3AC3MAK3R Geschrieben 5. September 2007 Teilen Geschrieben 5. September 2007 #1052 - Column 'PROJEKT_ID' in field list is ambiguous Bei der Meldung sollte es helfen, der Spalte "PROJEKT_ID" den Namen der Tabelle, in der sie vorkommt (bzw. einen entsprechenden Alias), voranzustellen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 5. September 2007 Autor Teilen Geschrieben 5. September 2007 das könnte in der Tat helfen... habe jetzt erstmal Select * genommen und den schreibfehler bei Projekt verbessert ;-) SELECT * FROM `Projekte` LEFT JOIN projekttaetigkeiten ON Projekttaetigkeiten.PROJEKT_ID = projekte.PROJEKT_ID WHERE `TAETIGKEIT_ID` =6 die Abfrage scheint jetzt zu laufen.... manchmal hilft es wirklich alles zu löschen und neu zu schreiben.... danke erstmal.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pc-nico Geschrieben 5. September 2007 Autor Teilen Geschrieben 5. September 2007 naja die Spalte Projekt ID kommt sowohl in Projekte als auch in Taetigkeiten vor... ... bei Select * werden mir im Ergebnis dann 2 Spalten mit PROJEKT_ID ausgeben... die Werte sind dann logischer Weise gleich.... mit SELECT Projekttaetigkeiten.PROJEKT_ID, PROJEKT FROM..... geht es dann... aber warum nicht mit PROJEKT.PROJEKT_ID??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.