我有兩個表:如何從表中選擇所有,並從另一個表中選擇匹配項?
TblAchievements >> [ID,AchName]
TblUsersAchievements >> [用戶ID,AchID]
我所需要的結果是這樣的(假設有4個成就並且用戶1已經達到1和2:
ID AchName UserID AchID
1 first 1 1
2 second 1 2
3 third NULL NULL
4 fourth NULL NULL
我嘗試了一些這樣的事:
SELECT
tblacheivements.id,
tblacheivements.achname,
tbluserachievements.uid,
tbluserachievements.achid
FROM
tbluserachievements
RIGHT OUTER JOIN tblacheivements ON (tbluserachievements.achid = tblacheivements.id)
WHERE
tbluserachievements.uid = 1 OR
tbluserachievements.uid IS NULL
它得到正確的結果,但當我改變用戶結果是錯誤的。
請在這個問題上花更多時間 - 這是非常混亂。我認爲這個字符串中可能有太多逗號。 'ID,AchName,UserID,AchID 1,首先,1,1 2,第二,1,2 3,第三,NULL,NULL 4,第四,NULL,NULL' – 2012-07-31 18:48:08
現在更清楚了嗎? – 2012-07-31 18:53:05
你的where子句沒有意義,它基本上會得到所有的行。 – JonH 2012-07-31 18:54:26