Base SQL limit aantal ingelezen records

Ik heb een Fotodatabank met 3 tabellen

  • tabel Personen, bevat een index IDNaam en de naam van de persoon
  • tabel WieOpFoto, bevat een index Idwie, … en een referentie tot max 5 personen, Nr1…Nr5 refererend naar de overeenkomstige IDNaam in de tabel Personen
  • tabel Foto’s, bevat een index IDFoto en de Foto ingebed

Een formulier om de database aan te vullen heeft behoefte aan alle velden uit de 3 tabellen (Select * from de drie tabellen) maar

  1. Is zeer traag en trager naarmate de database groeit vooral door de ingebedde foto’s (BLOB)
  2. Ik heb helemaal geen behoefte aan alle records uit de WieOpFoto tabel noch uit de Foto’s tabel gezien het enkel de bedoeling is nieuwe gegevens toe te voegen in beide tabellen. Ik zou bvb genoeg hebben aan de display van de laatste record uit beide tabellen (Limit ?)

Hoe kan ik dit in een SQL bekomen?

Wat betreft vraag 1: Foto’s inbedden in de database is een riskante operatie. Je kunt beter links naar de foto’s in een apart veld zetten. Zie deze vraag op het AOO forum. Je database wordt dan vanzelf sneller.
Voor vraag 2 heb ik geen goed antwoord.

Ik heb ingebedde foto’s omwille van portabiliteit, ik heb weinig aan de referentie zoals bvb "directory foto’s op Mijndrive C als ik het album wil laten zien op de computer van mijn dochter…

Even opgezocht, deze link, pas op, Engels legt het uit. Je kunt inderdaad SELECT … FROM … LIMIT … gebruiken om een beperkt aantal records te laden. Als je alleen de laatste 2 of 3 wil laten laden, wordt dat SELECT … FROM … ORDER BY … LIMIT 3

Werkt perfect
Dank