dedlfix: mysql: Rechnen mit mysql

Beitrag lesen

Tach!

Tabelle Spiele enthält alle Spiele, das Spieledatum wird in der Spalte Spieledatumals timestamp festgehalten.

Timestamps (also Feldtyp TIMESTAMP) sind für das Festhalten des Erstellungs- oder Änderungszeitpunktes vorgesehen und bringen diesbezügliche Automatismen mit. Für anders geartete Zeiten sind DATE, TIME und DATETIME vorgesehen.

Tabelle Einsaetze enthält in der Spalte Namen kommasepariert die Namen der Spieler

Ganz schlechtes Datenbankdesign, besonders ...

Für alle Spieler der Namenstabelle hätte ich gerne je (Kalender)jahr den prozentualen Einsatz zur Anzahl der Spiele in diesem Jahr.

... wenn nach Spielern Daten auszuwerten sind.

Alternativ würde mir auch schon sehr weiterhelfen, wenn ich den Output (also die Jahresaufstellung) für einen ganz bestimmten Spieler hätte.

Du kannst durch die Tabelle Namen gehen und nun für jeden Namen jeweils die gesamte Spiele-Tabelle durchlaufen und jeden Datensatz einzeln mit Stringoperationen malträtieren, um das Vorhandensein des Spielers zu ermitteln, aber schön und effizient geht anders.

Geht das überhaupt in einer Query oder benötige ich auf jeden Fall mehrere Queries und php hierzu?

Das geht schon, aber das will man keiner Datenbank zumuten, weil sie für solcherart Datenhaltung keine Optimierungsmechanismen (z.B. Index) heranziehen kann. Gleichartige Daten gehören nicht "nebeneinander" (kommasepariert oder Felder) sondern "untereinander" (je ein Datensatz).

dedlfix.