我一直在摆弄一个小型fooseball爱好数据库来跟踪比赛,球员和进球。并遇到了一个我不太清楚如何修复的问题。
匹配表有两个外键,都指向团队表中的tID。 我的想法是,我以后能够做一个SELECT,看看在给定的比赛中哪些球队(按名称)对阵对手。
select * from `Fooseball`.`match`
INNER JOIN team T1
ON Fooseball.`match`.mHome_Team = T1.tID
INNER JOIN team T2
ON Fooseball.`match`.mAway_Team = T2.tID
WHERE mID=1
1创建两个主键是他们更好的存档方式吗?比如,一张中间表?
2如何构建我的select语句,以便将tName列命名为“home”和“away”或其他?当我试着说
INNER JOIN team AS T1
没有任何改变。
答案 0 :(得分:2)
尽管有未提出的额外要求,但这几乎就是我的做法。
要重命名结果中的列,您可以执行类似
的操作SELECT m.mDate AS match_date, T1.tName AS home_team, T2.tName AS away_team
FROM Fooseball.`match` m
INNER JOIN team T1
ON m.mHome_Team = T1.tID
INNER JOIN team T2
ON m.mAway_Team = T2.tID
WHERE mID=1
对于报告,您可以使用混合大小写和空格(例如" Home Team")将列别名用双引号括起来。