我有用户表,级别表和users_levels表。
假设有10个级别。我想在游戏页面中加载所有10个关卡。假设用户只玩了5个等级,我想获得这5个等级的分数。
level_id user_score
1 100
2 200
3 NULL
4 NULL
5 NULL
..
对于此输出,users_levels将只为用户提供两个数据。我尝试了OUTER JOIN,但是当我添加user_id =?时,它什么也不返回。
SELECT *
FROM levels
LEFT OUTER JOIN users_levels ON level_id = FK_level_id
WHERE user_id =1
LIMIT 0 , 30
最佳答案
将user_id = 1
移到联接条件中。
SELECT *
FROM levels
LEFT OUTER JOIN users_levels ON level_id = FK_level_id AND user_id = 1
LIMIT 0 , 30
使用限制联接表中数据的
where
会将outer
联接转换为inner
联接。关于mysql - Mysql-选择所有可用的级别和演奏级别的用户分数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20756353/