Zu diesem Zeitpunkt gibt es eine begrenzte Join-Unterstützung in persistent, und ich glaube, es ist nur SQL.
Ich habe ein paar Helfer, die ich für einfache Fälle benutze. Sie können hier gefunden werden. Es ist kein echtes JOIN, es wählt einmal pro Tabelle aus und erstellt dann eine Liste von Tupeln, die "verbundene" Zeilen mit jeweils einem Element darstellen.
Wenn Sie Ihre Modelle und diesen Helfer verwenden, sollten Sie Folgendes tun können:
%Vor%Nur Fälle, in denen ein Datensatz in allen drei Tabellen vorhanden ist, werden zurückgegeben (es handelt sich also um einen INNEREN JOIN), aber Sie möchten möglicherweise auch die Effizienz vorab filtern.
Für zukünftige Referenz, für SQL können Sie esqueleto oder rawSQL Joins tun - siehe diese Antwort Verwirrt von selectOneMany in Yesod
Wenn Sie einen Join verwenden wollten, würde Ihre Abfrage in etwa so aussehen:
%Vor%Dies würde ein (Entity GamingSession, PlayerId) Tupel zurückgeben
Tags und Links haskell persistent yesod