 -- 3. Get all associations (N rows)
with
  AllAssociations as (
    select
      lhs as PlayerID,
      rhs as AssociateID,
      note
    from
      association
    where
      lhs = $1
    union
    select
      rhs as PlayerID,
      lhs as AssociateID,
      note
    from
      association
    where
      rhs = $1
  )
select
  p.id as AssociateID,
  p.name as AssociateName,
  coalesce(a.note, '') as AssociationNote
from
  AllAssociations a
  join player p on a.AssociateID = p.id;