MySQL Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
argument
beispiel
code
dank
datenbank
helfen
mannschaft
merken
nachname
problem
rand
sagen
spalten
spieler
tabelle
tip
verein
vorname
zahl
-
Hi,
ich habe ein Problem mit MySQL:
Meine Tabelle spieler sieht so aus:
--------------------------------------------------------------------
Vorname1 | Vorname2 | Nachname | Mannschaft |
--------------------------------------------------------------------
Das sind alles Zahlen! Meine Tabellen vornamen, nachnamen, vereine sehen so aus:
----------------
ID | name |
----------------
Ich will den
und denvornamen.name AS name1 WHERE vorname.ID = spieler.Vorname2
hohlen, allerdings schaffe ich dies nicht in einen Query!vornamen.name AS name2 WHERE vorname.ID = spieler.Vorname2
Könnte mir bitte einer helfen!
Danke schon mal im vorraus!
MfG
Steffen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hmm ich würd mal sagen einfach zusammen joinen
SELECT s.id, v1.name, v2.name, n.name, v.name FROM spieler s JOIN vornamen v1 ON s.vorname1=v1.id JOIN vornamen v2 ON s.vorname2=v2.id JOIN nachnamen n ON s.nachname=n.id JOIN vereine v ON s.mannschaft=v.id
vllt. noch ein Tipp am Rande:
Wenn man die Spalten mit den IDs immer gleich benennt, kann man "ON s.nachname=n.id" verkürzen auf "USING(nid)". Also Tabelle Spieler die ID Spalten mit den ID Spalten der anderen Tabellen
Beispiel:
SELECT s.sid, v1.name, v2.name, n.name, v.name FROM spieler s JOIN vornamen v1 ON s.vid1=v1.vid JOIN vornamen v2 ON s.vid2=v2.vid JOIN nachnamen n USING(nid) JOIN vereine v USING(mid)
...wenn die Tabellenspalten wie folgt heißen:
Spieler(sid, vid1, vid2, nid, mid)
Vornamen(vid, name)
Nachnamen(nid, name)
Vereine(mid, name)
Grüßle
Edit: Tipp ergänzt
Beitrag zuletzt geändert: 2.4.2009 13:23:06 von scout -
Hi,
danke es Funktioniert!
Den Tipp werde ich mir für die nächste überarbeitung der Datenbank merken!
Aber ein Problem habe ich noch: Da nicht alle Spieler einen Zweitnamen haben, ist bei manchen Spielern vorname2 = 0 und diese werden dann nicht angezeigt!
Weiß einer wie man dieses Problem lösen kann?
Danke schon mal im vorraus,
Steffen -
ok, ist ein Argument
Dann halt so..
SELECT s.id, v1.name, v2.name, n.name, v.name FROM spieler s JOIN vornamen v1 ON s.vorname1=v1.id LEFT JOIN vornamen v2 ON s.vorname2=v2.id JOIN nachnamen n ON s.nachname=n.id JOIN vereine v ON s.mannschaft=v.id
alternativ kannst du natürlich auch bei allen anderen Joins ein Left davor schreiben, falls dort auch mal eine ID nicht vorhanden sein sollte
Grüßle
Beitrag zuletzt geändert: 3.4.2009 11:50:06 von scout -
Hi,
danke es funktioniert!
alternativ kannst du natürlich auch bei allen anderen Joins ein Left davor schreiben, falls dort auch mal eine ID nicht vorhanden sein sollte
Bei den anderen Spalten sollte eine ID vorhanden sein!
MfG
Steffen
~close~ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage