Hi zusammen,
ich erstelle derzeit eine kleine Anwendung, um nach bestimmten Konstellationen einen gemeinsamen Termin für verschiedene Nutzer zu finden.
Mein DB-Aufbau sieht (vereinfacht dargestellt) folgendermaßen aus:
Tabelle User (BenutzerID, Name, Vorname, Email, ...)
Tabelle Termine (TerminID, Datum, Uhrzeit)
Beziehungstabelle User_Termine (TerminID, UserID, Verfügbar)
Die Beziehungstabelle sieht dann ungefähr so aus:
Nun würde ich am liebsten mit einer Abfrage ermitteln, dass bspw. die User 1 und 2 beide am Termin 1 Zeit hätten. Die User werden dabei vorgegeben. Es sollen eigentlich nur die beiden Termine übereinstimmenden Termine (Verfügbar = true) angezeigt werden. Mit einer einfachen Abfrage (ohne Joins) ermittlere ich nur die freien Termine:
"SELECT *
FROM User_Termine
WHERE (User = 1 OR User = 2) AND Verfügbar = true
Ich bekomme es aber nicht hin, dass ich mir nur die Überschneidungen anzeigen lasse. Habe es bereits mit verschiedenen Aggragatsfunktionen versucht, was leider keinen Erfolg erbracht hat. Die Google- und Forensuche hat mir auch nichts gebracht.
Vielleicht hat ja noch einer aus der Community noch eine brilliante Idee!?
Über jeden Tipp wäre ich sehr dankbar!
Herzliche Grüße und sonnige Pfingsten
Paul
ich erstelle derzeit eine kleine Anwendung, um nach bestimmten Konstellationen einen gemeinsamen Termin für verschiedene Nutzer zu finden.
Mein DB-Aufbau sieht (vereinfacht dargestellt) folgendermaßen aus:
Tabelle User (BenutzerID, Name, Vorname, Email, ...)
Tabelle Termine (TerminID, Datum, Uhrzeit)
Beziehungstabelle User_Termine (TerminID, UserID, Verfügbar)
Die Beziehungstabelle sieht dann ungefähr so aus:
| TerrminID | UserID | Verfügbar |
| 1 | 1 | true |
| 2 | 1 | false |
| 3 | 1 | true |
| 1 | 2 | true |
| 2 | 2 | true |
| 3 | 2 | false |
| 1 | 3 | false |
| 2 | 3 | false |
| 3 | 3 | true |
"SELECT *
FROM User_Termine
WHERE (User = 1 OR User = 2) AND Verfügbar = true
Ich bekomme es aber nicht hin, dass ich mir nur die Überschneidungen anzeigen lasse. Habe es bereits mit verschiedenen Aggragatsfunktionen versucht, was leider keinen Erfolg erbracht hat. Die Google- und Forensuche hat mir auch nichts gebracht.
Vielleicht hat ja noch einer aus der Community noch eine brilliante Idee!?
Über jeden Tipp wäre ich sehr dankbar!
Herzliche Grüße und sonnige Pfingsten
Paul

Kommentar