我有两个表 - 玩家,存储玩家数据,以及类似的表团队。 我想从这两个表中选择球员的名字和姓氏以及他所属球队的名称。我使用了这个查询:
SELECT player.name, player.surname,
team.name AS teamname
FROM player, team
WHERE player.id_player=team.id_team
但结果我每队只有一名球员,当然我想要一份有球队名字的球员名单。
有人有想法吗?
答案 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