MySQL - EER表

时间:2016-03-25 00:06:46

标签: mysql

上下文

我一直在摆弄一个小型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

Result

enter image description here

问题

1创建两个主键是他们更好的存档方式吗?比如,一张中间表?

2如何构建我的select语句,以便将tName列命名为“home”和“away”或其他?当我试着说

INNER JOIN team AS T1

没有任何改变。

1 个答案:

答案 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")将列别名用双引号括起来。