Soweit ich Dich verstanden habe stimmt das Beispiel aber der Stil stört dich, oder?
Nein, es gibt eben das Datendesign (das in grossen Teil in Deiner Frage ausgeklammert worden ist) und die Abfrage gegen das Datendesign (JOIN etc.). Dazu kommen noch Stilfragen, aber da hatten wir uns ja klar geaeussert.
Es spricht übrigens nichts dagegen, wenn Du Dir eine kleine DB aufbaust (sollte max. 10 Minuten dauern) und Dir die Fragen selbst beantwortest. (Vgl. auch Deine Frage weiter unten.)