左の結合はここでトリックを行う必要があります
select * 
from
    LOGS l
left join 
    PEOPLE p on p.peopleid = l.field and l.join = 'people'
LOGSとPEOPLEの間で正しい関係フィールドを使用したかどうかはわかりませんが、ログタイプがpeopleである結合句を含めると、 PEOPLEエントリが条件付きで返されることがわかります。
異なるテーブルから条件付きで戻りたい場合は、エンティティテーブルによって取り込まれる追加のフィールドが同じである(または少なくとも同じとして識別される)ことを確認する必要があるため、事態はさらに複雑になります。その場合、あなたはUNIONに強制されます。
select 
    l.*,
    p.peopleid as entityid, 
    p.fullname as displayname
from
    LOGS l
left join 
    PEOPLE p on p.peopleid = l.field and l.join = 'people'
union all
select 
    l.*,
    a.accountid as entityid, 
    p.accountname as displayname
from
    LOGS l
left join 
    ACCOUNT a on a.accountid = l.field and l.join = 'account'
またはおそらくこれ
select 
    l.*,
    entity.entityid as entityid, 
    entity.displayname as displayname
from
    LOGS l
left join 
(
    select 'people' as type, p.peopleid as entityid, p.fullname as displayname
    from PEOPLE
    union all
    select 'account', a.accountid, p.accountname
    from ACCOUNT
) entity on entity.type = l.join and entity.entityid = l.field
しかし、このように多くのエンティティテーブルを組み合わせてログを返すと、クエリが非常に遅くなる可能性があることを想像できます。