Zum Inhalt springen

Brauche Hilfe bei SQL-Statement (falls das überhaupt geht, was ich vorhab)


Flori

Empfohlene Beiträge

Hallo zusammen,

da ich inzwischen vielleicht den Wald vor lauter Bäumen sehe (weil zuviel probiert), wende ich mich mal ans Forum...vielleicht is da noch jemand frei im Kopf für das was ich gerne aus meiner DB abfragen möchte.

Habe zwei Tabellen:

A) responsibles

B) contacts

In Tabelle A steht drin (z.B.)

projectid - coordinator - developer

76 - 1 - 3

77 - 1 -

78 - 1 - 3

Tabelle B:

contactid - name

1 - Paul

2 - Peter

3 - Karl

Und ich möchte nun als Ergebnis meines SQL, daß die ID's in der Tabelle A durch die jeweiligen Namen ersetzt werden. Auch wenn dort wie im Beispiel das Feld "developer" einmal leer sein sollte. Also folgendermaßen soll der Output aussehen:

76 - Paul - Karl

77 - Paul -

78 - Paul - Karl

Leider komme ich bisher nur soweit, daß ich lediglich die Datensätze erhalte, bei denen sowohl "coordinator" als auch "developer" gefüllt sind. Den Datensatz Nr. 77 schmeißts immer raus. :-/

Weiß jemand wie ich die Bedingungen im WHERE mit AND und/oder OR setzen muß, damit ich das Ergebnis so wie oben bekommen kann. Oder ist das vielleicht gar nicht so möglich wie ich das vorhabe? :confused:

Vielen Dank für hilfreiche Tipps im Voraus!!!

Grüße an alle

Flori

Link zu diesem Kommentar
Auf anderen Seiten teilen

Probier das mal, ist allerdings nicht getestet...

Und ich weiss nicht, welches DBMS Du benutzt...oder ich habs überlesen ;)


SELECT res.projectid, con1.name AS coordinator, con2.name AS developer FROM responsibles AS res LEFT JOIN contacts AS con1 ON con1.contactid=res.coordinator LEFT JOIN contacts AS con2 ON con2.contactid=res.developer

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also bislang habe ich folgendes SQL-Statement:

SELECT projectid,contacts.name,con.name

FROM responsibles,contacts,contacts AS con

WHERE responsibles.projectid>75

AND coordinator=contacts.contactid

AND developer=con.contactid

Dieses ergibt folgendes Ergebnis:

75 - Paul - Karl

77 - Paul - Karl

Wie man sieht, fehlt mir hierbei aber die 76, da dort ja das Feld "developer" NULL ist. Und wie man den Datensatz jetzt auch noch mit abfragt...da komm ich halt nich so recht weiter momentan.... :-/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm, dankeschön für die prompte Hilfe schon mal.

Brauche das ganze für eine Access-Datenbank (hätte ich vielleicht mal dabei sagen sollen). Das mit dem LEFT JOIN leuchtet mir auf jeden Fall ein! :)

Allerdings gibt mir der Ausdruck

SELECT res.projectid,

con1.name AS coordinator,

con2.name AS developer

FROM responsibles AS res

LEFT JOIN contacts AS con1 ON con1.contactid=res.coordinator

LEFT JOIN contacts AS con2 ON con2.contactid=res.developer

eine Fehlermeldung zurück :

Syntaxfehler (fehlender Operator) in Abfrageausdruck 'con1.contactid=res.coordinator

LEFT JOIN contacts AS con2 ON con2.contactid=res.developer'

Wie sähe das mit den zwei LEFT JOINs aus für eine Lösung in Access 2000 ?

Danke nochmal !

Grüße

Flori

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, da habe ich mal gerade (zum ersten Mal oder so) ne Abfrage in Access im Entwursmodus gemacht :)...

Hier das Ergebnis:

SELECT responsibles.projectid, contacts.name, contacts_1.name

FROM contacts AS contacts_1 RIGHT JOIN (contacts RIGHT JOIN responsibles ON contacts.contactid = responsibles.coordinator) ON contacts_1.contactid = responsibles.developer;

Wenn man einen Rechtsklick auf die Beziehungslinien zwischen den Tabellen macht, dann kann man bei Verknüpfungseinstellungen einstellen, welche Art JOIN benutzt werden soll...

- Monty

Link zu diesem Kommentar
Auf anderen Seiten teilen

in access vielleicht ....

Nicht nur in Access. IMHO gehört das "AS" im Gegensatz zu vielen anderen Dialekten der einzelmen DBMS zum SQL-Standard.

Auf jeden Fall kannst du die Aliase wie Cleo schon sagte, je nach Belieben mit AS oder ohne AS definieren, z.B. in Access, Informix, MySQL...um nur drei zu nennen.

@Monty82 & all others ;)

Vielen Dank nochmal für eure Hilfe.

Als ich Eure Antworten gesehen hab, fiel endlich der Groschen wieder. *vor die Stirn schlag* ;)

Manchmal kann so'n Assistent mit Klick-Klick wie bei Access doch recht nützlich sein, gell.

Hatte die Abfrage in Informix begonnen; da klappte es simpel mit nem OUTER und dann hatte ich halt probiert in Access (weil ich von Access zu Informix möchte via ODBC) und da gabs halt kein OUTER mehr. Dafür LEFT und RIGHT JOIN....tja, hätt ich mal nich probiert, mir selbst eins zu basteln via SQL, sondern direkt den Rechtsklick auf die Verbindung gemacht...*g*

So klappts auf jeden Fall jetzt erste Sahne! :)

Bis zum nächsten SQL-Statement. ;)

Viele Grüße

Flori

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