Din lösning skapar för närvarande en tabell över de nyckel_id som är kopplade till varje konsument-id. Om du bara behöver det senaste så är svaret i din andra tråd är korrekt. Eftersom du aggregerar de senaste värdena från dina faktura- och betalningstabeller är en underfråga kopplad till ett ordnat bord det bästa sättet att gå.
Jag är inte säker på vad du menar med att hämta hela data från räkningar och betalningstabeller. Om du menar genomsökningar av hela tabeller bör detta lindras genom lämplig indexering och/eller partitionering.
Avser du att din reskontra ska vara en fullständig lista över alla räkningar och betalningar från konsumenten? Din fråga ger intrycket att du bara bryr dig om det senaste.