Ich habe eine SQL-AnweisungProper Paginierung in einem JOIN wählen
select *
from users u left join files f
on u.id = f.user_id
where f.mime_type = 'jpg'
order by u.join_date desc
limit 10 offset 10
Die Beziehung ist 1-N: Benutzer viele Dateien haben.
dies effektiv wählt die zweite 10-Element-Seite.
Das Problem ist, dass diese Abfrage Grenzen/Offsets einer verknüpften Tabelle begrenzt, aber ich möchte bestimmte Zeilen aus der ersten (users
) Tabelle begrenzen/versetzen.
Wie geht das? Ich ziele auf PostgreSQL und HSQLDB
Können Sie in der Unterauswahl 'order by' bestellen und' where' in der 'files' Tabelle hinzufügen? – Queequeg
Ja, aber die Sortierung nach der Unterauswahl unterscheidet sich je nachdem, wie Sie das tun (innerhalb oder außerhalb der Unterauswahl). Aber du kannst beides zusammen machen. –
Ich denke, das wird nur die Benutzer mit Dateien mit f.mime_type = 'jpg' für den zehnten ersten Benutzer auswählen. Es bedeutet, dass Sie nicht 10 Ergebnisse haben werden, aber N Ergebnisse mit N
lpratlong