【发布时间】:2016-06-05 01:25:00
【问题描述】:
我有这两个查询:
SELECT localteam = teams.team_name from teams, games WHERE games.loc_team_number = teams.team_number
SELECT visitingteam = teams.team_name from teams, games WHERE games.vis_team_number = teams.team_number
我正在尝试合并它们,但我似乎无法正确处理。 我正在尝试这个:
SELECT games.week, locteam, visteam, games.loc_goals, games.vis_goals
FROM games
JOIN (select locteam = teams.team_name from teams) AS locteam ON games.loc_team_number = teams.team_number
JOIN (select visteam = teams.team_name from teams) AS visteam ON games.vis_team_number = teams.team_number
但我收到此错误:
消息 4104,第 16 级,状态 1,第 118 行 无法绑定多部分标识符“teams.team_number”。 消息 4104,第 16 级,状态 1,第 119 行 无法绑定多部分标识符“teams.team_number”。
每个查询单独运行良好。
编辑:
第一个答案是对的,感谢任何回答的人
编辑 2:
这个答案做到了:
SELECT games.week, locteam, visteam, games.loc_goals, games.vis_goals
FROM games
JOIN (select locteam = teams.team_name, team_number from teams) AS locteam ON games.loc_team_number = locteam.team_number
JOIN (select visteam = teams.team_name, team_number from teams) AS visteam ON games.vis_team_number = visteam.team_number
但是如果我想为赢得比赛的球队名称添加另一个字段,会是这样吗?:
SELECT games.week, locteam, visteam, games.loc_goals, games.vis_goals, winner
FROM games
JOIN (select locteam = teams.team_name, team_number from teams) AS locteam ON games.loc_team_number = locteam.team_number
JOIN (select visteam = teams.team_name, team_number from teams) AS visteam ON games.vis_team_number = visteam.team_number
JOIN (select winner = teams.team_name, team_number from teams) AS winner ON
我想不出任何可行的条件
【问题讨论】:
-
永远不要在
FROM子句中使用逗号。始终使用显式JOIN语法。进一步的建议:编辑您的问题并提供示例数据和所需的结果。 -
teams.team_number需要一个名为teams的表或别名表,而您没有。你只有games、locteam、visteam。用这三个之一替换团队。
标签: sql-server database join unions