Hilfe !!

illuminatus26

Erfahrenes Mitglied
Hallo zusammen.

Bin noch ein blutiger Anfänger und habe somit noch meine Problemchen. Vielleicht könnte mir da mal jemand kurz helfen.

Also ich habe eine Tabelle erstellt, die eine ID-Spalte, eine Spalte mit dem Vereinsname (Bundesliga) und eine Spalte mit dem Stadionnamen.
Der Primärschlüssel liegt auf der ID-Spalte.
So nun habe ich eine weitere Tabelle, die eine Spalte mit heim, eine Spalte auswärts und eine spalte ergebnis enthält.
Als erster Datensatz steht in dieser Tabelle nun heim=1 und auswärts=15.
Jetzt würde ich gerne anstatt der Nummer aber den Vereinsnamen angezeigt bekommen.
Komme da nicht ganz weiter. Könnte mir vielleicht jemand mal einen kleinen Denkanstoss geben. Bin glaub ich gerade in denkerischen Sackgasse.
Danke schonmal.
 
Das Zauberwort heißt JOIN (Kreuzprodukt):
Code:
SELECT
  h.Vereinsname AS Heim,
  h.Stadionname AS Spielort,
  a.Vereinsname AS Gast,
  s.Ergebnis AS Ergebnis
FROM Spiele AS s
JOIN Vereine AS h ON (h.ID=s.heim)
JOIN Vereine AS a ON (a.ID=s.auswärts)
Gruß hpvw

PS: Einen etwas sinnvolleren Titel hättest Du wählen können.
 
Danke erstmal.

Ich arbeite bzw. versuche das mit phpmyadmin auf die Kette zu kriegen. Da habe ich allerdings noch nie etwas von Join gesehen.
Kennst du dich damit aus?

PS: Die Überschrift war wirklich nicht originell. Da hast du schon recht.
 
Ich nochmal. will dich auch nicht nerven. aber denke das ich fast am Ziel bin.

Code:
$sql = 'SELECT `tipspiel__mannschaften`.`verein`'
        . ' FROM `tipspiel__paarungen1_1`'
        . ' LEFT JOIN `tipspiel__mannschaften` ON `tipspiel__paarungen1_1`.`heim` = `tipspiel__mannschaften`.`verein` LIMIT 0, 30 ';

Als Ergebnis erhalte ich NULL. Wie ich das verstanden habe auch zurecht, da keine gleichnamigen Spalten vorhanden sind.
Wie kriege ich nun den Vereinsnamen raus?
 
Zuletzt bearbeitet:
Steht in der Paarungen-Tabelle bei Heim nicht die ID der Manschaftstabelle? Dann solltest Du auch mit der ID in der Manschaftstabelle vergleichen und nicht mit dem Verein.

Gruß hpvw
 
Du hast dich ja heute schonmal mit so einem Fussballproblem beschäftigt. :)

Also Tabelle Paarung hat keine ID-Spalte. Die ID befindet sich als Datensatz in der Tabelle.
Aber ich machhe es mal so wie mein Vorgänger.

Tabelle 1

Mannschaften

ID----verein---------stadion
1-----Bayern-------Allianz-Arena
...
15---Borussia-----Borussia-Park


Tabelle 2

Paarungen

heim---auswaerts----erg
--1------------15---------im moment nix


So sieht meine Struktur aus.
 
Dann ändere hinter dem ON das `tipspiel__mannschaften`.`verein` in `tipspiel__mannschaften`.`ID`, damit Du keine Äpfel mit Birnen vergleichst.

Gruß hpvw
 
Da kriege ich dann auch nur eine Fehlermeldung. Ich check den ganzen Befehl irgendwie nicht. In einem anderen Post hast du jemanden diesem Befehl gegeben. In Klammern habe ich nun mal das geschrieben was bei mir rein sollte. Zumindest denke ich das.



Code:
SELECT
  Games.HID, (paarung.heim)
  Games.FID, (paarung.auswaerts)
  Heim.Name AS HeimName, (keine ahnung)
  Gast.Name AS GastName   (keine ahnung)
FROM Games (paarung)
  JOIN Team (mannschaften) AS Heim (keine ahnung) ON (Games.HID (paarung.heim) = Heim.ID)
  JOIN Team (mannschaften) AS Gast  (keine ahnung) ON (Games.FID (paarung.auswaerts) = Gast.ID)
 
Code:
SELECT
  Games.HID, (paarung.heim)
  Games.FID, (paarung.auswaerts)
  Heim.Name AS HeimName, (Heim.verein AS HeimName)
  Gast.Name AS GastName   (Gast.Verein AS GastName)
FROM Games (paarung)
  JOIN Team (mannschaften) AS Heim (Heim) 
    ON (Games.HID (paarung.heim) = Heim.ID)
  JOIN Team (mannschaften) AS Gast (Gast) 
    ON (Games.FID (paarung.auswaerts) = Gast.ID)
Die Alias-Namen (AS) kannst Du lassen, wie sie sind, statt dem namen des Vereins musst Du Deinen Feldnamen verein einsetzen.

Der Join bildet das Kreuzprodukt beider Tabellen und behält davon die Einträge, die der Bedingung hinter ON genügen.
Das Kreuzprodukt (auch kartesisches Produkt) kommt aus der Mengenlehre. Die Tabelle bildet die Menge, die einzelnen Zeilen die Elemente der Menge.

Auch wenn ich eher ein Freund der Praxis bin und die Theorie oft genug nicht mehr als grau ist, halte ich sie beim Thema relationale Datenbanken für unglaublich hilfreich. Du solltest Dich mit dem beschäftigen, was dahinter steckt, es erleichtert die Arbeit wirklich.

Neben den bereits geposteten Links finde ich als "erweiterten Einstieg" auch "Datenbanksysteme" von Markus Moschner sehr gelungen, da er von den Datenbanken über das Relationenmodell auch den Bogen zur dahinter stehenden Theorie spannt.

Gruß hpvw
 

Neue Beiträge

Zurück