我在與一個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