0

我有 3 个表格(比赛、球员和进球),我需要显示所有比赛,但只显示最后得分球员的姓名。我知道我需要加入我的桌子,但我不知道如何。

这是我的数据库图:

数据库图 http://img843.imageshack.us/img843/582/8gqj.jpg

4

2 回答 2

2

或者你可以做

SELECT m.id, m.date, p.name, g.goal FROM match m
  LEFT JOIN ( SELECT max(id) gid,id_match FROM goal GROUP BY id_match ) 
            lastgoal ON lastgoal.id_match=m.id
  LEFT JOIN goal g   ON g.id=lastgoal.gid
  LEFT JOIN player p ON p.id=g.id_player 

第一个子查询(带有 a GROUP BY)查找每个游戏的最后一个目标,假设它具有最高的 id(最后输入),其余的是直接连接......

于 2013-08-06T16:37:04.547 回答
0

使用LIMIT混合ORDER BY来从表中仅选择一项,然后加入。

于 2013-08-06T16:26:30.667 回答