对于连接条件,将首先引用的表名放在 on 之后
这样做的好处是,更容易判断你的连接是否会导致结果有 fanout 问题:
-- Good
select
...
from users
left join charges on users.id = charges.user_id
-- primary_key = foreign_key --> one-to-many --> fanout
select
...
from charges
left join users on charges.user_id = users.id
-- foreign_key = primary_key --> many-to-one --> no fanout
-- Bad
select
...
from users
left join charges on charges.user_id = users.id