bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
Geschrieben am: 13.01.2012 um 13:10 Uhr
|
|
Hallo Zusammen...
ich brauche hilfe, komme bei meiner aufgabe nicht weiter...
Aufgabe:
Gebe jede Abteilung mit den zugehörigen Mitarbeitern aus
Die Daten soll sich eclipse (java) aus der Datenbank (mysql) holen
Das ganze soll eine While-Schleife in einer While-Schleife sein
so quasi in der äußeren durchsucht er die Abteilung und in der Inneren die Mitarbeiter
das haben wir:
rs = stmt.executeQuery(
"SELECT Abteilungen.AbteilungsNr, Abteilungen.AbteilungsName FROM Abteilungen");
while (rs.next()) {
System.out.println("Abteilung: " + rs.getString("AbteilungsNr") + " - " + rs.getString("AbteilungsName"));
stmt2 = con.createStatement();
rs2 = stmt2.executeQuery(
"SELECT Mitarbeiter.Nachname, Mitarbeiter.Vorname FROM Mitarbeiter WHERE x = Mitarbeiter.Abteilungen_AbteilungsNr");
while (rs2.next()){
String x = rs.getString("AbteilungsNr");
System.out.println("\n" + " Mitarbeiter: " + rs2.getString("Mitarbeiter.Nachname")+ ", " + rs2.getString("Mitarbeiter.Vorname"));
}
}
Problem: Er gibt uns jeweils ALLE Mitarbeiter bei jeder Abteilung aus und nicht nur die, die da rein gehören!
hat jemand eine Idee??
Danke :)
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
h3mpti - 37
Profi
(offline)
Dabei seit 05.2007
878
Beiträge
|
Geschrieben am: 13.01.2012 um 13:16 Uhr
|
|
Zitat: "SELECT Mitarbeiter.Nachname, Mitarbeiter.Vorname FROM Mitarbeiter WHERE x = Mitarbeiter.Abteilungen_AbteilungsNr"
sicher, dass die Abfrage so korrekt ist?
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
Geschrieben am: 13.01.2012 um 13:18 Uhr
|
|
nich so ganz, das x liest er nicht... wir wollen das ergebnis in x speichern (meinte der prof...)
irgendwo ist da noch ein fehler, weil er uns ja alle Mitarbeiter ausgibt und nicht nur die, die in die abteilung gehören...
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
MackieMesser - 41
Champion
(offline)
Dabei seit 08.2007
3916
Beiträge
|
Geschrieben am: 13.01.2012 um 13:19 Uhr
Zuletzt editiert am: 13.01.2012 um 13:30 Uhr
|
|
Mache doch so etwas mit einem JOIN. Große Querys in while Schleifen sind pfui.
Abteilungsnummern x iterieren:
SELECT m.Nachname, m.Vorname FROM Mitarbeiter m, Atbeilungen a WHERE a.Abteilungen_AbteilungsNr = m.Abteilungen_AbteilungsNr AND a.AbteilungsNr = x;
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
Geschrieben am: 13.01.2012 um 13:21 Uhr
|
|
ja das haben wir gemerkt, mit INNERJOIN macht der leider auch nur falsche Angaben... somit bleibt uns nur die While-Lösung...
:(
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
h3mpti - 37
Profi
(offline)
Dabei seit 05.2007
878
Beiträge
|
Geschrieben am: 13.01.2012 um 13:22 Uhr
|
|
1. Das was MackieMesser sagt.
2. benutzt du in deiner 2. Abfrage keine werte aus der 1. Abfrage.
Dein
Zitat: String x = rs.getString("AbteilungsNr");
müsste vor dem executeQuery der 2. Abfrage deklariert werden.
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
Geschrieben am: 13.01.2012 um 13:27 Uhr
|
|
wenn das x oben deklarier kommt ne exception catched meldung :|
funktioniert leider nicht
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|
h3mpti - 37
Profi
(offline)
Dabei seit 05.2007
878
Beiträge
|
Geschrieben am: 13.01.2012 um 13:53 Uhr
Zuletzt editiert am: 13.01.2012 um 13:53 Uhr
|
|
was denn für eine Exception? Ein paar mehr Infos wären sehr hilfreich.
|
|
bumble_beee - 36
Profi
(offline)
Dabei seit 12.2004
972
Beiträge
|
Geschrieben am: 13.01.2012 um 17:59 Uhr
|
|
danke für eure Hilfen!
Haben das Problem gelöst :)
Faulheit-ist die Angewohnheit sich auszuruhen, bevor man müde ist
|
|