我在与一个SQL查询斗争,我似乎无法弄清楚,并希望有人可能会帮助我这一点。MYSQL查询失败,左加入
我有两张桌子我想连接在一起。我的第一张表是“成就”表,其中有3个字段:achievementId,AchievementName和ZoneId
我的第二个表是位于我的用户和此成就表之间的表,它基本上也存储了3个项目。 UserId,AchievementId和IsChecked。它在这里指的是一个复选框。
因此,我正在一个页面上显示复选框列表形式的所有成就,所以我想让那些已经实现的成员显示在列表中,但是,我试图获得的查询完全失败,我不知道如何解决它。我尝试了下面的项目,但当然我失败了。所以我希望你们能够帮助我,并调整我的查询。
我当前的查询是
Select * from Achievement
Where Zone = '2'
LEFT JOIN Achievement_User
Where Achievement_User.UserId='2'
And Achievement_User.AchievementId = Achievement.AchievementId
但它偏离轨道失败。我可能有语法错误,但我无法弄清楚。如果有人能帮助我?
编辑我想我解释了这个错误。但左连接仅显示匹配的连接,但是,我需要成就的完整列表,它类似于40行,它现在仅显示来自Achievement_User的数据行,其中查询由@Aquillo提供。我更喜欢没有由区域2的成果提供的所有40行
您忘记了ON条件。 – Mihai
如果外部表userID = 2,那么左侧连接的目的是什么? – Dan
@丹,因为他加入AchievementId,而不是UserId – Aquillo