Change it up to use an
OUTER JOIN
instead
SELECT b.BirthIndex, b.{other data}
, d.DeathIndex, d.{other data}
, c.CemeteryIndex, c.{other data}
FROM BirthRecords b
LEFT OUTER JOIN DeathRecords d ON b.PersonID = d.PersonID
LEFT OUTER JOIN CemeteryRecords c ON b.PersonID = c.PersonID
This will bring up everyone that you have a record for in the Birth table, and will bring up any records that are present in the related tables for Death and/or Cemetery.
What you will need to account for in your code is that you are going to get
NULLs for the DeathIndex and/or CemetaryIndex if there is no corresponding record.
One thing to consider would be to add another table for the people in general (PersonsTable) that has their main information, and use that as the "main" table and Left Join the others. It is entirely possible to end up with death and or cemetery records and not have a birth record locally.