Sql 在连接表时,如何区分这两个ID请求?
这里没有。我有一个足球比赛数据库,我正试图用它来学习/练习SQL 在一个表(称为“Match”)中有比赛api id、日期、主场团队api id、客场团队api id、主场团队目标、客场团队目标。 在另一个表(称为“团队”)中有团队api id、团队名称 现在我正在尝试做一个查询,以显示比赛ID、日期、主队名称和客队名称Sql 在连接表时,如何区分这两个ID请求?,sql,sqlite,Sql,Sqlite,这里没有。我有一个足球比赛数据库,我正试图用它来学习/练习SQL 在一个表(称为“Match”)中有比赛api id、日期、主场团队api id、客场团队api id、主场团队目标、客场团队目标。 在另一个表(称为“团队”)中有团队api id、团队名称 现在我正在尝试做一个查询,以显示比赛ID、日期、主队名称和客队名称 SELECT M.match_api_id, M.date, T.team_long_name, T.team_long_name FROM Match M JOIN Team
SELECT M.match_api_id, M.date, T.team_long_name, T.team_long_name
FROM Match M
JOIN Team T ON (M.home_team_api_id = T.team_api_id)
JOIN Team T ON (M.away_team_api_id = T.team_api_id)
LIMIT 10
当我只使用一个join(第一个)来显示主队的名字时,这个代码就起作用了。但是,当我添加第二个联接时,它会给我一个不明确的列名错误。如何更改此代码,以便同时显示客场球队的名称?您需要不同的表格别名。否则
T
不明确:
SELECT M.match_api_id, M.date, TH.team_long_name, TA.team_long_name
FROM Match M JOIN
Team TH
ON M.home_team_api_id = TH.team_api_id JOIN
Team TA
ON M.away_team_api_id = TA.team_api_id;
LIMIT 10
太棒了,这完全有道理。谢谢。现在,作为后续,假设我查询的是11名球员的名字,而不是2名球队的名字。这是否需要11个不同的联接,每个联接使用不同的表别名?这是我当前查询设置的屏幕截图。正如你所看到的,它可以运行,但我想知道是否有更有效的方法来做到这一点?@fbnhost1。如果您有一个断开的数据模型,将玩家放入单独的列而不是单独的行中,则只需要11个联接。