我有 3 个表格(比赛、球员和进球),我需要显示所有比赛,但只显示最后得分球员的姓名。我知道我需要加入我的桌子,但我不知道如何。
这是我的数据库图:
我有 3 个表格(比赛、球员和进球),我需要显示所有比赛,但只显示最后得分球员的姓名。我知道我需要加入我的桌子,但我不知道如何。
这是我的数据库图:
或者你可以做
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(最后输入),其余的是直接连接......
使用LIMIT
混合ORDER BY
来从表中仅选择一项,然后加入。