我有用户表,级别表和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/

10-16 23:15