从两个表MySql中选择行

时间:2016-01-09 18:18:10

标签: mysql sql

我有两个表 - 玩家,存储玩家数据,以及类似的表团队。 我想从这两个表中选择球员的名字和姓氏以及他所属球队的名称。我使用了这个查询:

SELECT player.name, player.surname,
   team.name AS teamname 
FROM player, team 
WHERE player.id_player=team.id_team 

但结果我每队只有一名球员,当然我想要一份有球队名字的球员名单。

有人有想法吗?

3 个答案:

答案 0 :(得分:3)

我认为您需要加入团队ID。我猜这类似的东西会起作用:

SELECT p.name, p.surname, t.name AS teamname 
FROM player p JOIN
     team t
     ON p.team_id_team = t.id_team ;
----------^ Note the change here

此外:

  • 了解正确的JOIN语法。简单规则:从不FROM子句中使用逗号。 始终使用明确的JOIN语法。
  • 表别名使查询更容易编写和阅读。
  • 如果您的玩家没有有效的团队,请使用LEFT JOIN代替JOIN

答案 1 :(得分:2)

您必须使用JOIN来“连接”表格。使用“WHERE”,您只能排除行;

SELECT
  p.name,
  p.surname,
  t.name AS teamname 
FROM player p
LEFT JOIN team t ON p.id_player = t.id_team ;

答案 2 :(得分:1)

您应该使用left join

SELECT p.name, p.surname,
   t.name AS teamname 
FROM player p
left join team t on t.id_team=p.id_team