Variable Spaltennamen in SELECT
wuscheck
- datenbank
0 Vinzenz Mai0 wuscheck0 der Flo(H)0 Vinzenz Mai0 wuscheck
0 Klaus Mock
Hallo,
ich mache einen SELECT auf eine MySQL-Tabelle, allerdings ändert sich jedes Jahr eine Spaltenbezeichnung.
Beispiel:
SELECT saison1, spieler, ...
im nächsten Jahr muss dies dann heissen:
SELECT saison2, spieler,....
Mit Variablen kann man anscheinend nicht arbeiten, gibt es trotzdem eine Möglichkeit oder muss ich tatsächlich alle Abfragen Jahr für Jahr anpassen...
Gruss
wuscheck
Hallo
ich mache einen SELECT auf eine MySQL-Tabelle, allerdings ändert sich jedes Jahr eine Spaltenbezeichnung.
Warum ändert sich eine Spaltenbezeichnung?
Meist ist dies ein Indiz für einen Fehler in der Datenbankstruktur.
Beispiel:
SELECT saison1, spieler, ...
im nächsten Jahr muss dies dann heissen:
SELECT saison2, spieler,....
Dein Beispiel will mir nicht recht einleuchten. Ich sehe hier keine Veranlassung, in einem neuen Spieljahr eine neue Spaltenbezeichnung zu verwenden. Kannst Du bitte konkreter werden. Tabelle(n), mit Daten gefüllt. Die Abfrage(n), die Du benötigst. Genauer formuliert: die Daten, die Du auswählen willst.
Mit Variablen kann man anscheinend nicht arbeiten, gibt es trotzdem eine Möglichkeit oder muss ich tatsächlich alle Abfragen Jahr für Jahr anpassen...
Mit Variablen kann man je nach Datenbankmanagementsystem schon arbeiten. Stell uns doch bitte Deine Datenbankstruktur vor. Erläutere, was Du mit der Änderung der Spaltenbezeichnung bezweckst. Vielleicht können wir Dir einen Vorschlag machen, wie Du es besser lösen könntest, so dass Dein jetztiges Problem nicht mehr auftritt.
Freundliche Grüße
Vinzenz
Warum ändert sich eine Spaltenbezeichnung?
Meist ist dies ein Indiz für einen Fehler in der Datenbankstruktur.Dein Beispiel will mir nicht recht einleuchten. Ich sehe hier keine Veranlassung, in einem neuen Spieljahr eine neue Spaltenbezeichnung zu verwenden. Kannst Du bitte konkreter werden. Tabelle(n), mit Daten gefüllt. Die Abfrage(n), die Du benötigst. Genauer formuliert: die Daten, die Du auswählen willst.
Mit Variablen kann man je nach Datenbankmanagementsystem schon arbeiten. Stell uns doch bitte Deine Datenbankstruktur vor. Erläutere, was Du mit der Änderung der Spaltenbezeichnung bezweckst. Vielleicht können wir Dir einen Vorschlag machen, wie Du es besser lösen könntest, so dass Dein jetztiges Problem nicht mehr auftritt.
Ich speichere jedes Jahr Saison-Informationen von Spielern ab. Zum einen möchte ich nur für die aktuelle Saison Daten abspeichern. Die "historischen" Informationen brauche ich allerdings auch für Statistikzwecke...
Meine DB-Struktur mit Beispieleinträgen sieht wie folgt aus:
id = 23
saison1 = 0
saison2 = 3
saison3 = 2
saison4 = 5
saison5 =
saison6 =
saison7=
name = Peter
position = Aussen
etc.
In meinen Forms möchte ich immer nur die aktuelle Saison haben... in diesem Falle die saison 5... heisst also beim SELECT, UPDATE oder INSERT soll natürlich nur diese auch angesprochen werden. Über eine die variable $saison weiss ich welche Saison wir haben (aktuell 2005/2006)...
Gruss
wuscheck
Und was machst du, wenn du in Saison 8 angekommen bist? Die Datenbank um ein Feld erweitern?
Hallo Flo,
Und was machst du, wenn du in Saison 8 angekommen bist? Die Datenbank um ein Feld erweitern?
spätestens jetzt sollte Wuscheck verstehen, dass in seiner Struktur ein kleiner Fehler drin ist.
Wuscheck, welche Bedeutung haben die Zahlen in den Spalten saison1, saison2, ...?
Sind das Einsätze, sind das Tore? Ist Dir schon untergekommen, dass ein Spieler eine neue Position übernommen hat? (Ok, sowas kann sogar während der Saison geschehen.)
Du solltest für jede Spielzeit für jeden Spieler eine neue Zeile erstellen - und in einer Spalte das Spieljahr eintragen.
Freundliche Grüße
Vinzenz
Danke an alle für die Lösungsvorschläge... werde mich gleich dransetzen... manchmal ist man halt betriebsblind...
Hallo,
Meist ist dies ein Indiz für einen Fehler in der Datenbankstruktur.
Ich speichere jedes Jahr Saison-Informationen von Spielern ab. Zum einen möchte ich nur für die aktuelle Saison Daten abspeichern. Die "historischen" Informationen brauche ich allerdings auch für Statistikzwecke...
Es liegt also doch ein Fehler in der Datenbankstruktur vor.Es ist imho immer ein Indiz für schlechtes Design, wenn man Spalten wie saison1..saisonN verwendet. Das deutet generell darauf hin, dass eigentlich eine 1:n-Beziehung aufgebaut werden sollte.
Warum lagerst Du die Informationen zu jedem Spieler nicht in eine zweite Tabelle aus, die dann neben einem Verweis auf den Spieler auch die Saison und deren zugehörigen Daten aufweist. Da hast Du dann auch gleich die Möglichkeit zusätzliche Informationen einzufügen.
Beispiel:
Tabelle 'Spieler' besteht aus SpielerID,Name, Geburtstag usw.
Tabelle 'Saison' besteht aus (z.B.) SaisonID, Beginn, Ende der Saison usw.
Tabelle 'Saisondaten' besteht aus SaisondatenID, SpielerID (Fremdschlüssel zu Spieler.SpielerID), SaisonID (Fremdschlüssel zu Saison.SaisonID) und die Daten wie z.B. Tore, Gelbe/Rote Karten, usw.
Eventuell kannst Du dann das ganze System auhc ausbauen, um die Spiele zu verwalten und dazu die Spielzeiten, Position (kann sich ja je Spiel ändern) jedes Spielers, und so weiter.
Grüße
Klaus