I am trying to change a SQL query from the old syntax to the new syntax, so that it will work with the new version of Crystal Reports.

Here is the old query:
SELECT
PersonMaster.displayname,
AlumniStudentInfo.class,
UserDefs.value,
Seasonal_Addresses.address1, Seasonal_Addresses.address2, Seasonal_Addresses.city, Seasonal_Addresses.state, Seasonal_Addresses.country, Seasonal_Addresses.zip,
Constituencies.idtypeconst,
TrusteeAddresses.lastname, TrusteeAddresses.firstname, TrusteeAddresses.BusinessAddress1, TrusteeAddresses.BusinessAddress2, TrusteeAddresses.BusinessCity, TrusteeAddresses.BusinessState, TrusteeAddresses.BusinessZip, TrusteeAddresses.BusinessCountry, TrusteeAddresses.UseBusinessAddress
FROM
PersonMaster PersonMaster,
AlumniStudentInfo AlumniStudentInfo,
UserDefs UserDefs,
Seasonal_Addresses Seasonal_Addresses,
Constituencies Constituencies,
tmpTrusteeAddresses TrusteeAddresses
WHERE
PersonMaster.idcode *= AlumniStudentInfo.idperson AND
PersonMaster.idcode *= UserDefs.idperson AND
PersonMaster.idcode = Seasonal_Addresses.idperson AND
PersonMaster.idcode = Constituencies.idperson AND
PersonMaster.idcode = TrusteeAddresses.idcode AND
Constituencies.idtypeconst = 9 AND
UserDefs.idtypeuserdef = 115
ORDER BY
TrusteeAddresses.lastname ASC,
TrusteeAddresses.firstname ASC


And this is what I have come up with for the new query using the new syntax:
SELECT "Seasonal_Addresses"."address1", "Seasonal_Addresses"."address2", "Seasonal_Addresses"."city", "Seasonal_Addresses"."state", "Seasonal_Addresses"."zip", "Seasonal_Addresses"."country", "Constituencies"."idtypeconst", "UserDefs"."value", "PersonMaster"."displayname", "AlumniStudentInfo"."class", "TrusteeAddresses"."BusinessCity", "TrusteeAddresses"."BusinessState", "TrusteeAddresses"."BusinessZip", "TrusteeAddresses"."BusinessCountry", "TrusteeAddresses"."BusinessAddress1", "TrusteeAddresses"."BusinessAddress2", "TrusteeAddresses"."lastname", "TrusteeAddresses"."firstname", "TrusteeAddresses"."UseBusinessAddress", "UserDefs"."idtypeuserdef", constituencies.idtypeconst
FROM {oj (((("PersonMaster" "PersonMaster"
INNER JOIN "Seasonal_Addresses" "Seasonal_Addresses" ON "PersonMaster"."idcode"="Seasonal_Addresses"."idpe rson")
INNER JOIN "Constituencies" "Constituencies" ON "PersonMaster"."idcode"="Constituencies"."idperson ")
INNER JOIN "tmpTrusteeAddresses" "TrusteeAddresses" ON "PersonMaster"."idcode"="TrusteeAddresses"."idcode ")
LEFT OUTER JOIN "AlumniStudentInfo" "AlumniStudentInfo" ON "PersonMaster"."idcode"="AlumniStudentInfo"."idper son")
LEFT OUTER JOIN "UserDefs" "UserDefs" ON "PersonMaster"."idcode"="UserDefs"."idperson"}
WHERE "Constituencies"."idtypeconst"=9 AND ("UserDefs"."idtypeuserdef"=115 OR "UserDefs"."idtypeuserdef" IS NULL)
ORDER BY "TrusteeAddresses"."lastname", "TrusteeAddresses"."firstname"


The problem is that even though I am performing a left outer join on PersonMaster with UserDefs, it is not showing every record in PersonMaster. It is only showing records where a record exists in the UserDefs table.

The first query was giving me all 25 records from the PersonMaster table, but the second query is only giving me 6 records, and I need it to give me all 25.

Can anyone tell me how to do this?