korea1 Geschrieben 12. Oktober 2004 Geschrieben 12. Oktober 2004 Hallo, ich hab hier glaub nen Knoten im Hirn. Tja das mit dem Bild war wohl nix. Dann eben so: Tabelle PC ( pcnr ->primary, name,f_bnr->foreign key,f_pnr->foreign key,ram,hd,mhz,bezeichnung,ip) Tabellle Person (pnr-> primary, vorname, nachname,tel,email,f_anr->foreign key) Tabelle Abteilung (anr->primary,name) Tabelle Betriebssystem (bnr->primary, f_bnnr->foreign key,sp,lizenz) Tabelle BetriebssystemName(bnnr->primary,name) Folgende Abfrage: SELECT p.name, p.ip, p.ram, p.hd, p.mhz,p.bezeichnung, b.lizenz, bn.name AS OS, b.sp FROM pc p, betriebssystem b, betriebssystemName bn WHERE b.bnr = p.f_bnr AND bn.bnnr = b.f_bnnr funktioniert wunderbar. sobald ich mir aber noch zusätzlich den vor- und nachnamen anzeigen lassen möchte, bekomm ich nur noch einen Datensatz angezeigt. Hab ich was vergessen? Oder was is falsch? Die Abfrage sieht dann so aus: SELECT p.name, p.ip, p.ram, p.hd, p.mhz,p.bezeichnung, b.lizenz, bn.name AS OS, b.sp, pers.vorname, pers.nachname FROM pc p, betriebssystem b, betriebssystemName bn, person pers WHERE b.bnr = p.f_bnr AND bn.bnnr = b.f_bnnr AND pers.pnr = p.f_pnr Sollte die Abfrage richtig sein, woran kanns dan liegen? Wenn jmd das ERM möchte, mail an mich, dann werd ich es verschicken. Danke Korea1
geloescht_JesterDay Geschrieben 12. Oktober 2004 Geschrieben 12. Oktober 2004 korea1 schrieb: sobald ich mir aber noch zusätzlich den vor- und nachnamen anzeigen lassen möchte, bekomm ich nur noch einen Datensatz angezeigt. Kann es sein, dass du nur eine Person in deiner Personen Tabelle hast? SELECT p.name, p.ip, p.ram, p.hd, p.mhz,p.bezeichnung, b.lizenz, bn.name AS OS, b.sp, pers.vorname, pers.nachname FROM pc p left outer join betriebssystem b on b.bnr = p.f_bnr left outer join betriebssystemName bn on bn.bnnr = b.f_bnnr left outer join person pers on pers.pnr = p.f_pnr so sollte es dann gehen... Edit: Liegt daran, dass er nur die Datensätze anzeigt, für die deine Bedingungen passen. Und wenn du nur eine Person hast würde das eben so aussehen...
korea1 Geschrieben 12. Oktober 2004 Autor Geschrieben 12. Oktober 2004 Hallo, in meiner Personen Tabelle sind ca. 16 Datensätze. Du hast Recht, es funktioniert so, das seltsame ist, dass bei den anderen zwei Datensätzen in den Feldern Vor- und Nachname nichts drinsteht, in der Datenbank hab ich aber schon Personen zugeordnet. Wie kann das sein?? Danke Korea1
geloescht_JesterDay Geschrieben 14. Oktober 2004 Geschrieben 14. Oktober 2004 korea1 schrieb: das seltsame ist, dass bei den anderen zwei Datensätzen in den Feldern Vor- und Nachname nichts drinsteht, in der Datenbank hab ich aber schon Personen zugeordnet. Wie kann das sein?? durch den Left outer join werden die Datensätze auch dann angezeigt, wenn es keine entsprechung in der gejointen Datei gibt. Die gejointen Felder enthalten dann einen NULL-Wert. Der "normale" Join (also deine Select * from Dateien Where Datei1.Feld=Datei2.Feld) zeigt in so einem Fall nichts an. Ich schätze mal, dass die Schlüsselfelder einfach nich passen in deiner Personendatei...
korea1 Geschrieben 18. Oktober 2004 Autor Geschrieben 18. Oktober 2004 Danke für die Erklärung. Ich hatte einen falschen foreign key eingetragen. Aber die Info mit dem Join ist trotzdem sehr nützlich. MfG korea1
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden