Zum Inhalt springen

SQL Abfrage


korea1

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...