Seite 1 von 1

MySQL und SQL-Befehl Problem

Verfasst: 12.05.2005 19:47
von mr.no-name
Hallo,

ich bin in PHP und MySQL nicht so wunderbar bewandert (höchstens in den Grundkenntnissen) und arbeite gerade an einer Forumserweiterung für ein Forum zu einem Spiel...
Es geht um folgende Sache:

Es soll eine Liste für die Teilnehmer des Spiels geben, in der verschiedene Daten zu den Teilnehmern stehen, zum Beispiel Ausrüstungsgegenstände im Spiel, zuständiger Ansprechpartner, etc.
Also habe ich in einer MySQL Datenbank eine Tabelle für die Teilnehmer angelegt. Da ich in dieser Tabelle die einzelnen Ausrüstungsgegenstände nicht hundertfach speichern möchte, gibt es noch mehrere Tabellen für Ansprechpartner, Ausrüstungsgegenstände (Waffen und Rüstungsgegenstände), usw.
In der Teilnehmer-Tabelle habe ich also außer dem Namen eigentlich nur IDs der Ansprechpartner/Gegenstände/Allianz, etc gespeichert.

Mit Hilfe von LEFT JOIN verknüpfe ich bei der Auflistung der Teilnehmer die einzelnen Datenbank-Tabellen. Allerdings funktioniert es nicht, aus der Gegenstands-Tabelle mehrere Sachen je Teilnehmer zuzuordnen, da ich sozusagen die selbe Tabelle mehrmals mit LEFT JOIN verknüpfen müsste, was leider nicht geht ;)

Wisst ihr, wie ich das Problem lösen könnte, ohne die Gegenstandstabelle aufzuspalten, etc?

Re: MySQL und SQL-Befehl Problem

Verfasst: 12.05.2005 22:48
von Pyramide
mr.no-name hat geschrieben:Mit Hilfe von LEFT JOIN verknüpfe ich bei der Auflistung der Teilnehmer die einzelnen Datenbank-Tabellen. Allerdings funktioniert es nicht, aus der Gegenstands-Tabelle mehrere Sachen je Teilnehmer zuzuordnen, da ich sozusagen die selbe Tabelle mehrmals mit LEFT JOIN verknüpfen müsste, was leider nicht geht ;)
Wieso mehrmals? Poste doch mal einen kleinen Ausschnitt der Tabellen und wie dann das Ergebnis aussehen soll, ich kann mir das anhand deiner Beschreibung nicht wirklich vorstellen.

Verfasst: 12.05.2005 23:01
von mr.no-name
Hmm - ich kanns einfach schwer beschreiben *g*

Daher hier mal die Datenbank
www.kampfsaeufer.net/liste.sql

Es dreht sich ja alles um die Tabelle gladiator:
allianz soll mit der Tabelle allianzen verknüpft werden
verteiler1, verteiler2 und verteiler3 sollen mit der Tabelle verteiler verknüpft werden
t-waffe soll mit der Tabelle t-waffe verknüpft werden
kriegswaffe soll mit der Tabelle kriegswaffe verknüpft werden
schutz1, schutz2, schutz3, schutz4 und schutz5 sollen mit der Tabelle schutz verknüpft werden.

Normalerweise hat das mit left join ganz gut geklappt - nur die Sache, dass mehrere Felder mit ein und derselben Tabelle (also verteiler und schutz) verknüpft werden sollen geht damit nicht (jedenfalls weiß ich nicht).
Daher die Frage: Gibt es eine Abfrage, mit der das möglich ist? Oder wie müsste die DB strukturiert sein, damit es klappt? Oder wie würdest du die DB aufbauen, damit es anders klappt? Es geht ja nur darum, dass nicht die Verteilernamen hundertfach gespeichert werden und die Waffen, Rüstungen etc auch nicht...