我有两个表,一个用于团队,另一个用于他们的日程安排。

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

09-25 22:00