我有两个表,一个用于团队,另一个用于他们的日程安排。
table teams
int teamId
varchar teamName
table sched
int schedId
date startDate
time startTime
int awayTeam
int homeTeam
如何编写查询以获取两个团队的名称?
这并不能完全解决问题-
select s.schedId,s.awayTeam,t.teamName,s.homeTeam,t.teamName
from sched s, teams t
where s.schedId=1
and t.teamId=s.homeTeam and t.teamId=s.awayTeam
我知道我的and子句不正确,但实际上应该是什么?
谢谢
RD
最佳答案
您是否正在寻找类似的东西?
SELECT sched.*, at.teamName AS awayteam, ht.teamName AS hometeam FROM sched
JOIN teams AS at ON sched.awayteam = at.teamId
JOIN teams AS ht ON sched.hometeam = ht.teamId;
您可以多次连接一个表-但是您将需要为它们使用别名以形成正确的位置子句。
请注意,此:
FROM a JOIN b ON a.fk = b.id
具有与以下相同的效果:FROM a,b WHERE a.fk = b.id