强制脱节:漂亮的查询?

Mandatory disjoint: beautiful query?

我有一个 table 的架构 用户(用户名、密码、全名、用户类型)

有 4 种类型的用户,每种类型都有一个 table 以及特定类型的附加属性:

用户的所有附加 table 中可能只有 1 条记录。

我需要根据用户类型显示来自用户 table 和附加属性 table 的所有用户信息。

首先想到的是先查询用户table,然后根据返回的类型,查询其中一个相关的table...但是这样也太许多查询,所以我想知道,是否可以在单个查询中完成?

使用left join:

select u.*,
       (case when i.username is not null then 'individual'
             when c.username is not null then 'corporation'
        end) as usertype,
       i.education, i.work_since,
       c.headquarters, c.office, c.num_employees
from users u left join
     individual i
     on i.username = u.username left join
     corporation c
     on c.username = u.username;