MySql Tabellen durch id verbinden

  • Hallo,ich habe schon recht lange danach gesucht und auch hier im Forum durchgeguckt, aber leider habe ich nicht das Richtige gefunden. Vermutlich ist es ganz einfach und daher für die Meisten selbstverständlich, aber ich habe ein Problem mit der Verbindung zweier Tabellen. Und zwar habe ich eine Tabelle Bundesliga mit
    ID
    Verein
    Tabellenplatz
    etc.

    und eine Tabelle mit Spielern:
    id
    Name
    Spiele
    Tore
    etc.

    Meine Frage ist jetzt, wie kann ich in MySql einstellen, dass Spieler A: (bsp. Mario Gomez) mit seinen ganzen Daten (Spiele, Tore, etc) dem Verein XY (Bsp. Bayern) zugeordnet wird? Also quasi Tabelle Spieler ist abhängig von Tabelle Verein.
    Ich habe vermutet, dass ich bei Spieler neben der Primary Id eine Vereins_ID hinzufügen muss. Weiter weiss ich aber nicht.....

    Wäre Super, wenn mir jemand helfen könnte.

    Vielen Dank,

  • Ich habe vermutet, dass ich bei Spieler neben der Primary Id eine Vereins_ID hinzufügen muss.


    Absolut richtig, sonst hast du ja keine Verbindung Verein/Spieler

  • Hallo Bandit,
    Ich bin jetzt in MySql, dort habe ich die Tabelle Spieler um Vereins_ID erweitert. Ich habe für die beiden Tabellen eine InnoDB eingerichtet. Wenn ich dann aber versuche Vereins_ID in "Spieler" mit der "Verein" in Bundesliga zu verbinden, dann passiert folgendes:

    ALTER TABLE `verein` ADD FOREIGN KEY ( `verein_id` ) REFERENCES `sport`.`bundesliga` (`Spieler`
    ON DELETE CASCADE ON UPDATE CASCADE ;

    Hättest Du einen Rat, was ich da falsch gemacht habe und wie ich es richtig mache?

  • Entschuldige, hat nicht alles mitkopiert, es wird dann ein Fehler angezeigt...
    Fehler beim Erzeugen eines Fremdschlüssels für verein_id (überprüfen Sie die Datentypen)

  • Normalerweise musst du nicht bei der Verein sondern bei Spieler eine neue INT Spalte mit dem Namen "Verein_ID" anlegen.
    Weil du hast EINEN VEREIN mit mehreren Spielern und nicht EINEN Spieler mit mehreren Vereinen. Danach kannst du die dann beispielhaft so auslesen:

    SQL
    SELECT `Verein`.`Name`, `Spieler`.`Name` FROM `Verein`, `Spieler` WHERE `Verein`.`ID` = `Spieler`.`Verein_ID` LIMIT 20;

    Gruß crAzywuLf :D

  • Entschuldige, hat nicht alles mitkopiert, es wird dann ein Fehler angezeigt...
    Fehler beim Erzeugen eines Fremdschlüssels für verein_id (überprüfen Sie die Datentypen)

    Der Fremdschlüssel hat bei dir einen anderen Feldtyp als dein Primärschlüssel. Es reicht nicht für beides INT zu nehmen beispielsweise, auch die Länge und eventuelle Attribute (z.B. unsigned) müssen übereinstimmen.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook