一个表条件连接

时间:2018-02-14 15:37:22

标签: sql join

在SQL中是否可以通过条件连接从2个表中选择数据,当第二个表不满足条件时,从中选择空值?

我已经这样做了:

select * from Achievements left join (select * from PlayerAchievements where userId = 2) as t1 on t1.achievementsId = Achievements.Id

但我想知道是否有可能在没有子查询的情况下实现相同的结果?

1 个答案:

答案 0 :(得分:1)

您可以使用LEFT JOIN使用以下解决方案。附加条件(userId = 2)用于映射条件(ON)而不是WHERE。因此,如果成就的ID与Achievements匹配,则显示左表(PlayerAchievements)的所有行,并仅附加正确表(userId)的信息。

SELECT *  FROM Achievements A 
    LEFT JOIN PlayerAchievements PA ON A.Id = PA.achievementsId AND PA.userId = 2