LOCAL ARRAY laFields LOCAL lcOn, lnI lcOn = "" SELECT FOR lnI = 1 TO AFIELDS(laFields) IF !INLIST(laFields[lnI,1], ...list of fields to exclude...) lcOn = lcOn + IIF(EMPTY(lcOn),"ON "," AND ") lcOn = lcOn + "FreeTable." + laFields[lnI,1] + " = DBCTable." + laFields[lnI,1] ENDIF ENDFOR SELECT FreeTable.* ; FROM FreeTable ; LEFT JOIN DBCTable &lcOn ; WHERE FreeTable.Field1 # DBCTable.Field1