MySQL Query提供重复项

时间:2011-09-14 16:08:38

标签: mysql

我无法通过查询返回唯一结果。

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

这让我疯了 我在PHP 5.3(PDO)

中写这个

2 个答案:

答案 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