SQL优化WHERE与JOIN

c3c*_*ris 1 php mysql sql database

我正在使用mysql这是一个我很快写的查询,但我觉得这可以使用JOINS进行优化.这是btw的一个例子.

users table:
id user_name first_name last_name email         password
1  bobyxl    Bob        Cox       bob@gmail.com pass

player table
id role player_name user_id server_id racial_name 
3  0    boby123     1       2         Klingon
1  1    example     2       2         Race
2  0    boby2       1       1         Klingon
Run Code Online (Sandbox Code Playgroud)

SQL

SELECT `player`.`server_id`,`player`.`id`,`player`.`player_name`,`player`.`racial_name` 
FROM `player`,`users` 
WHERE `users`.`id` = 1
and `users`.`id` =  `player`.`user_id`
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用左连接,但有什么好处

SELECT `player`.`server_id`,`player`.`id`,`player`.`player_name`,`player`.`racial_name` 
FROM `player` 
LEFT JOIN `users` 
ON `users`.`id` =  `player`.`user_id`
WHERE `users`.`id` = 1
Run Code Online (Sandbox Code Playgroud)

有什么好处,我得到了相同的结果以太方式.

Fil*_*lva 5

您的查询中有一个JOIN.它与写作相同:

SELECT `player`.`server_id`,`player`.`id`,`player`.`player_name`,`player`.`racial_name` 
FROM `player`
INNER JOIN `users` ON `users`.`id` =  `player`.`user_id`
WHERE `users`.`id` = 1
Run Code Online (Sandbox Code Playgroud)

您使用左连接的唯一原因是,即使您在用户表中没有匹配项,也希望从播放器表中获取数据.