in dem falle unnötige schritte, ich joine erst und verdichte die daten dann wieder mit GROUP BY, das kostet nur unnötig.
Kommt drauf an wie die Indexe liegen, wie viele Einträge die Tabellen an sich etwa haben und wie viele Eingträge davon anhand welcher Indexe ausgewählt werden.
pictures klingt aufgrund des Vergleichs mit a.id schon nach Identität, da sollte natürlich ein Index drauf liegen. Ich nehm sogar an ein primary key.
Die DB sollte dann schon auch ein bisschen mitdenken, wie sie die Abfrage ausführt.
Wie würdest du es sonst machen?