对等于两列中任意一列的列执行SQL JOIN



我需要在一个等于user_usernameuser_email的字段login_username上联接两个表。

我试过这个,但它就是不起作用,它循环。

JOIN users ON login_username = user_username OR login_username = user_email

可以这样做吗?还是我需要做两个单独的连接?

通常,除and之外的任何布尔条件都是joins的性能杀手。

我建议:

select . . .
from t left join
users un
on t.login_username = un.user_username left join
users ue
on t.login_username = ue.user_email

您确实需要调整select子句以选择非null值,通常在您感兴趣的任何列上使用coalesce()

最新更新