bennemann8
Benutzer
- Beiträge
- 6
Hallo zusammen,
ich habe ein kleines bis größeres Problem. Und zwar bekomme ich mit meiner Query nicht immer die passenden Informationen!
Meine Query sieht wie folgt aus:
SELECT t.name, p.name, p.team_id, p.id, value
FROM players p
INNER JOIN round_division r ON r.player_id = p.id
INNER JOIN points ON points.player_id = p.id
INNER JOIN teams t ON t.id = p.team_id
WHERE
type='points1' AND
desk_id = {HIER WIRD MEINE DESK_ID PER SCHLEIFE ÜBERGEBEN} AND
round=1;
Allerdings muss ich da nun noch irgendwie meine TurnierID unterbringen. Ich habe in einer Tabelle "tournaments" eine Spalte "id". Diese ID wird von meinem Programm benutzt und mit Hilfe dieser muss ich die passenden Datensätze auslesen.
Ein Problem was ich dabei habe ist, dass ich zu den Ausgaben, die ich jetzt bekomme (so wie die Query jetzt ist), zusätzlich auch alle Datensätze benötige, die mit der tournaments.id übereinstimmen, aber nicht zwingend in der Tabelle points vorhanden sein müssen.
Es kann sein, dass die Punkte noch nicht eingetragen wurden, oder einfach noch keine Runden erstellt wurden.
Beispiel:
Ich habe zwei Turniere in meiner DB, mit den ids 1 und 2.
Runden wurden in beiden Turnieren bereits generiert, allerdings wurden nur Punkte für das Turnier mit der ID = 1 eingetragen. Somit gibt es in der Tabelle points keinen einzigen Datensatz, in der in der Spalte tournament_id = 2 steht.
Nun benötige ich alle Daten, die ich selecten möchte trotzdem (logischerweise bis auf 'value').
Wenn ich allerdings das Turnier mit der ID = 1 laden würde, dann sollen zusätzlich auch die Punkte selected werden.
Anbei habe ich meine DB Struktur mal als Bild angefügt.
Ich hoffe ihr versteht was ich meine bzw. was mein Problem ist.
Das Ganze muss performance optimiert sein, ich muss also irgendwie versuchen, wenige queries zu verarbeiten, da alles über eine Online DB passiert. Das Programm greift nicht auf eine lokale DB zu.
Gruß
Jakob
ich habe ein kleines bis größeres Problem. Und zwar bekomme ich mit meiner Query nicht immer die passenden Informationen!
Meine Query sieht wie folgt aus:
SELECT t.name, p.name, p.team_id, p.id, value
FROM players p
INNER JOIN round_division r ON r.player_id = p.id
INNER JOIN points ON points.player_id = p.id
INNER JOIN teams t ON t.id = p.team_id
WHERE
type='points1' AND
desk_id = {HIER WIRD MEINE DESK_ID PER SCHLEIFE ÜBERGEBEN} AND
round=1;
Allerdings muss ich da nun noch irgendwie meine TurnierID unterbringen. Ich habe in einer Tabelle "tournaments" eine Spalte "id". Diese ID wird von meinem Programm benutzt und mit Hilfe dieser muss ich die passenden Datensätze auslesen.
Ein Problem was ich dabei habe ist, dass ich zu den Ausgaben, die ich jetzt bekomme (so wie die Query jetzt ist), zusätzlich auch alle Datensätze benötige, die mit der tournaments.id übereinstimmen, aber nicht zwingend in der Tabelle points vorhanden sein müssen.
Es kann sein, dass die Punkte noch nicht eingetragen wurden, oder einfach noch keine Runden erstellt wurden.
Beispiel:
Ich habe zwei Turniere in meiner DB, mit den ids 1 und 2.
Runden wurden in beiden Turnieren bereits generiert, allerdings wurden nur Punkte für das Turnier mit der ID = 1 eingetragen. Somit gibt es in der Tabelle points keinen einzigen Datensatz, in der in der Spalte tournament_id = 2 steht.
Nun benötige ich alle Daten, die ich selecten möchte trotzdem (logischerweise bis auf 'value').
Wenn ich allerdings das Turnier mit der ID = 1 laden würde, dann sollen zusätzlich auch die Punkte selected werden.
Anbei habe ich meine DB Struktur mal als Bild angefügt.
Ich hoffe ihr versteht was ich meine bzw. was mein Problem ist.
Das Ganze muss performance optimiert sein, ich muss also irgendwie versuchen, wenige queries zu verarbeiten, da alles über eine Online DB passiert. Das Programm greift nicht auf eine lokale DB zu.
Gruß
Jakob