Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

1

23.03.2014, 17:42

[SQL Abfrage] 2 IDs aus einer Tabelle durch Namen in einer anderen Tabelle ersetzen

Hallo liebe Community,

mir bereite gerade eine SQL Abfrage, die einfach nicht funktionieren soll Kopfzerbrechen...

Ich habe in einer Tabelle Schulabschluss 2 Spalten namens Abschluss_erworben und Abschluss_anstreben.
In beiden Spalten stehen nur IDs von 1 - 8.

In einer Tabelle Abschluesse habe ich 4 Spalten namens Erworben_ID, Anstreben_ID, Abschluss_anstreben(miit den Namen), Abschluss_erworben(mit den Namen)

Ich würde gerne die Tabelle Schulabschluss ausgeben nur, dass statt einer ID in den Spalten Abschluss_erworben und Abschluss_anstreben der Name des Abschlusses steht.
Also sowas wie:

statt:

Quellcode

1
2
3
Bewerber_ID      Abschluss_erworben               Abschluss_anstreben
1                         5                                    3
2                         2                                    6

so:

Quellcode

1
2
3
Bewerber_ID      Abschluss_erworben               Abschluss_anstreben
1                 Fachoberschulreife                Fachhochschulreife  
2                  Abitur                               kein Abschluss



ich habe es schon wie folgt versucht, nur funktioniert es leider nicht und es wird nichts ausgegben.

Quellcode

1
2
3
4
SELECT b.Bewerber_ID, a.Abschluss_erworben, a.Abschluss_anstreben
FROM bewerber b, abschluesse a, schulabschluss sa
WHERE sa.Abschluss_erworben = a.Erworben_ID
AND sa.Abschluss_anstreben = a.Anstreben_ID

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

23.03.2014, 18:32

Ich glaube dein gesamtes Konzept ergibt keinen Sinn. Wieso einthalten sowohl der Bewerber, als auch die Abschluss Tabelle einen angestrebten und einen erworbenen Abschluss?

Sinn würde für mich ergeben:

Bewerber - ID, Abschluss_erworben (Foreign Key auf Schulabschluss), Abschluss_angestrebt (Foreign Key auf Schulabschluss)
Schulabschluss - ID, Abschluss_Name

Damit hätte jeder Bewerber einen Abschluss, den er anstrebt und einen, den er schon besitzt und die Arten der Abschlüsse sind einzeln in ihrer eigenen Tabelle.
Eventuell sogar noch:
Studiengang - ID, Abschluss_angestrebt, Abschluss_benoetigt
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

3

23.03.2014, 18:46

Hm... ich glaube das was für dich Sinn ergibt habe ich auch so gemacht.

Meine Bewerber Tabelle weiß nichts von irgendwelchen Abschlüssen

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

4

23.03.2014, 18:50

So schaute die Beziehung anfangs aus, mit der es am besten sogar funktioniert.

In Abschluss_erworben und Abschluss_anstreben sind die IDs die zur Abschluss_ID in Abschluesse passt.
»BK Simon« hat folgendes Bild angehängt:
  • Forum.png

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

23.03.2014, 18:53

Öhm, nein. In Deinem SQL-Query steht eindeutig, dass die Tabelle "Schulabschluss" angeblich die beiden Spalten "Abschluss_erworben" und "Abschluss_anstreben" besitzt und dass "abschluesse" angeblich die Spalten "Erworben_ID" und "Anstreben_ID" besitzt. Das steht so nicht in Deinem Diagramm und macht aus meiner Sicht eben auch keinen Sinn. Wieso sollte sie diese Spalten besitzen?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

6

23.03.2014, 18:54

Achso, ja in diesen Spalten stehen jediglich IDs drinnen von 1-8

Anfangs bestand die Tabelle nur aus Abschluss_ID und Abschluss und dann habe ich angefangen es irgendwie hinzubekommen, dass die Abschlussnamen ausgegeben werden und dafür habe ich mir dann die "Hilfsspalten" Erworben_ID, Anstreben_ID und Abschluss_erworben und Abschluss_anstreben angelegt, doch leider hat es nicht wirklich funktioniert.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

23.03.2014, 18:57

Bitte nochmal lesen wegen Edit.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

8

23.03.2014, 19:00

Habe meins auch nochmal editiert.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

23.03.2014, 19:17

Ich fürchte Du musst erst mal das Konzept von relationalen Datenbanken verstehen, damit Deine Queries Sinn ergeben können.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

BK Simon

Treue Seele

  • »BK Simon« ist der Autor dieses Themas

Beiträge: 151

Beruf: Student

  • Private Nachricht senden

10

23.03.2014, 19:21

Dass die SQL Abfrage die ich oben gepostet habe falsch ist und so nicht umsetzbar ist mir bewusst, doch gibt es eine Möglichkeit, wie ich mit einer Abfrage und meinem Modell, dass ich als Bild gepostet habe, das so zu realisieren wie ich es gerne hätte?

Eine andere Möglichkeit, die ich aber als nicht sehr gut betrachte ist, dass ich einfach eine 2. Tabelle, die die gleichen Werte wie die Tabelle Abschluesse hat mache und diese dann mit meiner Abfrage verknüpfe, so dass ich für jede Spalte Abschluss_erworben und Abschluss_anstreben eine eigene Tabelle habe um die IDs dann gegen den passenden Namen austausche.

Werbeanzeige