bsmparty.de - die kostenlose Community



Sei dabei! Jetzt einloggen!

bsmparty.de im Web

Premium Partner


bsmparty.de PremiumPartner

facebook




SEITE: :: « 1 :: 1 SEITE(N)
13.05.2007 10:35

off miss_kitty(36)

74 Postings



Hallo zusammen,

ich hab ein Problem beim Auslesen von Daten aus einer Datenbankbasis.Ich möchte aus mehreren Tabellen verschiedene Spalten auslesen. Allerdings wird mir immer eine Kombination der Attribute geliefert. Heißt ich möchte aus der einen Tabelle das Bauobjekt und die Nummer auslesen und aus der Tabelle Baufahrzeuge in Kombination mit Krane über die Krannummer und die Fahrzeugnummer den Fahrzeugtyp des Krans, der zum Bauobjekt gehört. In der Tabelle Bauobjekte aber nur als Fremdschlüssel mit der Krannummer existiert. Und mit folgendem Befehl orndet er jedem Bauvorhaben einmal jeden Kran zu...

select Bauobjekt,BauobjektNr,Fahrzeugtyp,Einsatzbereitschaft from Rohbau,Baufahrzeuge
where Baufahrzeuge.FahrzeugNr In(select FahrzeugNr from Krane,Rohbau where Rohbau.KranNr=Krane.KranNr);

vielleicht kann mir von euch jem weiterhelfen?

mfg

EDIT: überschrift heißt natürlich relationale Datenbanken



----
Dieser Beitrag wurde am 13.05.2007 10:45 editiert!


MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:06

off DonCarlos(39)

16 Postings

hi, also das erste was ich mal sehe ist dass wohl in deinem subselect was nicht passt, müsste das nicht rohbau.krane heissen ?

aber irgendwie ist bräuchtest du noch eine verknüpfung der selects ...
schreibst du bitte mal die beiden tabellen auf ?
welche spalten wo drin sind ?

kannst mir auch per icq schreiben

MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:27

off miss_kitty(36)

74 Postings



Zitat:
geschrieben von DonCarlos
hi, also das erste was ich mal sehe ist dass wohl in deinem subselect was nicht passt, müsste das nicht rohbau.krane heissen ?

aber irgendwie ist bräuchtest du noch eine verknüpfung der selects ...
schreibst du bitte mal die beiden tabellen auf ?
welche spalten wo drin sind ?

kannst mir auch per icq schreiben


das eine san Krane(Krannummer(Primärschlüssel),fahrzeugnummer)
dann Baufahrzeuge(fahrzeugnr.(Primärschlüssel),fahrzeugtyp,Leistungsparameter,Einsatzbereitschaft)
und Rohbau (Bauobjektnummer(primärschlüssel);Bauobjekt,KranNr.(fremdschlüssel))



MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:34

off DonCarlos(39)

16 Postings

select r.bauobjektnummer, r.bauobjekt , b.fahrzeugtyp,b.einsatzbereitschaft
from
rohbau r join krane k on r.krannr = k.krannummer
join baufahrzeuge b on b.fahrzeugnr = k.fahrzeugnummer
where bauobjektnummer =XY


die where klausel könntest du dir sparen , aber dann kriegst halt die auflistung über alle bauobjekte

btw: fahrzeugtyp, ist das auch nochmal eine fremdschlüsselbeziehung ? die müsstest evtl dann auch noch joinen

klappts so ?
das war nur mal schnell so geschrieben

PS: mir fällt grad ein , wenn ein bauobjekt nun keinen kran hat , wird das bauobjekt nicht ausgewiesen, da müsstest dann mit left und right join arbeiten

----
Dieser Beitrag wurde am 13.05.2007 11:36 editiert!


MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:41

off miss_kitty(36)

74 Postings



Zitat:
geschrieben von DonCarlos
select r.bauobjektnummer, r.bauobjekt , b.fahrzeugtyp,b.einsatzbereitschaft
from
rohbau r join krane k on r.krannr = k.krannummer
join baufahrzeuge b on b.fahrzeugnr = k.fahrzeugnummer
where bauobjektnummer =XY


die where klausel könntest du dir sparen , aber dann kriegst halt die auflistung über alle bauobjekte

btw: fahrzeugtyp, ist das auch nochmal eine fremdschlüsselbeziehung ? die müsstest evtl dann auch noch joinen

klappts so ?
das war nur mal schnell so geschrieben

PS: mir fällt grad ein , wenn ein bauobjekt nun keinen kran hat , wird das bauobjekt nicht ausgewiesen, da müsstest dann mit left und right join arbeiten


du beziehst dich ja jetzt auf eine bestimmte bauobjektnummer, oder? ich will ja eig alle aufgelistet haben...quasi die ganze tablle...
loin und union gingen eig gar ned, da hab ich nur fehlermeldungen gehriegt und bei union hat er keine neuen spalten sondern zeilen gemacht wahrscheinlich stell ich mich einfah ein wenig

MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:48

off DonCarlos(39)

16 Postings

join und union sind ganz verschiedene sachen

wenn du das für die ganze tabelle haben willst , lässt du einfach die where bedinung weg ....

join hängt zwei verschiedene tabellen zusammen (also an den von mir definierten stellen/spalten)

union hängt zwei verschiedene abfragen (mit gleicher ergebnisspaltenmenge) zusammen
=> union brauchst du nicht

kennst du dich mit (left/right) joins aus ?

MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:52

off miss_kitty(36)

74 Postings



Zitat:
geschrieben von DonCarlos
join und union sind ganz verschiedene sachen

wenn du das für die ganze tabelle haben willst , lässt du einfach die where bedinung weg ....

join hängt zwei verschiedene tabellen zusammen (also an den von mir definierten stellen/spalten)

union hängt zwei verschiedene abfragen (mit gleicher ergebnisspaltenmenge) zusammen
=> union brauchst du nicht

kennst du dich mit (left/right) joins aus ?


nein ich muss jetzt mal schauen ob das jetzt geht. brauch ich bei dem select obne gleich den tabellennamen?

MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 11:57

off DonCarlos(39)

16 Postings

wie meinst du das mit "gleich einen tabellennamen" ?

wenn du das "r." davor meinst, das ist optional , solang kein spaltennmane mehrfahch in den tabellen vorkommt, aber sicherheitshalber macht mans normal hin

MEHR | Verwarnpunkte: 0 | Forumsperren: 0
13.05.2007 12:02

off miss_kitty(36)

74 Postings



Zitat:
geschrieben von DonCarlos
wie meinst du das mit "gleich einen tabellennamen" ?

wenn du das "r." davor meinst, das ist optional , solang kein spaltennmane mehrfahch in den tabellen vorkommt, aber sicherheitshalber macht mans normal hin


ja, ich hab das select r.bauobjektnummer gemeint...

MEHR | Verwarnpunkte: 0 | Forumsperren: 0
SEITE: :: « 1 :: 1 SEITE(N)


Nur registrierte User können Einträge schreiben!

Du wagst es nicht bei bsmparty.de angemeldet zu sein? :)
Als registrierter User kannst du aktiv in der Community teilnehmen, lernst viele neue Leute kennen, bekommst eine eigene User Card, kannst mit den anderen Usern chatten u.v.m.

Also nichts wie registrieren -
die Anmeldung dauert 2 Minuten und ist absolut kostenlos!!
ZUR ANMELDUNG


» Zum Seitenanfang