我无法通过查询返回唯一结果。
users_systems
db setup:
int id
int user_id
int system_id
int mic`
示例users_systems
数据:
id user_id system_id mic
1 1 1 1
2 1 3 0
users_gamernames
db setup
int id
int user_id
int system_id
varchar user_name
示例users_gamernames
数据
id user_id system_id user_name
1 1 1 jayr0xx
2 1 3 jayrox
查询:
SELECT DISTINCT users_systems.system_id, users_systems.mic users_gamers.user_name
FROM users_systems
LEFT JOIN users_gamernames ON users_gamernames.user_id = users_systems.user_id
WHERE users_systems.user_id =4
LIMIT 0 , 30
返回:
system_id mic user_name
1 0 jayrox
1 1 jayr0xx
3 0 jayrox
3 1 jayr0xx
我要回复:
system_id mic user_name
1 1 jayr0xx
3 0 jayrox
答案 0 :(得分:2)
LEFT JOIN users_gamernames ON (users_gamernames.user_id = users_systems.user_id and users_gamernames.system_id = users_systems.system_id)
由于您省略了第二个连接条件,因此您将获得与每个游戏用户名配对的每个用户/系统的结果。
答案 1 :(得分:0)
天然关节是你必须在这里使用的。
SELECT DISTINCT system_id, mic ,user_name FROM users_systems NATURAL JOIN users_gamernames