从一个表中选择行,仅从另一个表中连接最后一行

时间:2013-08-06 16:23:10

标签: mysql

我有3张桌子(比赛,球员和球门), 我需要显示所有比赛,但只能显示最后得分球员的名字。 我知道我需要加入我的桌子,但我不知道如何。

这是我的数据库图表:

database diagram http://img843.imageshack.us/img843/582/8gqj.jpg

2 个答案:

答案 0 :(得分: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 

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

答案 1 :(得分:0)

使用与LIMIT混合的ORDER BY仅从表格中选择一项,然后进行加入。