首页 > 解决方案 > 从另一个表中选择按唯一值分组的表中的所有行

问题描述

我有两个表的简单数据库。

teams表中有列teamid。表有
playersplayer_nameplayer_age和。 positionteam_id

team_idin table 是在playerstable 中引用的外键。team_nameteams

我想使用 PHP 在 HTML 表中显示此信息,其中我将使用team_name,player_nameplayer_age.

我只需要唯一team_name值,因为我想使用 while 循环回显整个表,所以我需要它们只在标题中回显一次。我希望这是有道理的。

我的问题是,我不知道如何编写一个查询,它将从表中返回不同的team_name值,但从teams表中返回所有玩家和年龄信息players

我尝试过使用连接,但我总是得到与值相同数量的team_nameplayer_name

我这样做只是为了锻炼,所以我现在不关心任何安全问题和类似的事情。

标签: phpmysqlsql

解决方案


假设您想显示 id = 3 的团队的关系,您可以使用 join 作为

select t.team_name, p.player_name, p.player_age
from teams t 
inner join players p on p.team_id = t.id
and t.id = 3

或者如果您想要基于团队名称的关系

select t.team_name, p.player_name, p.player_age
from teams t 
inner join players p on p.team_id = t.id
and t.team_name = 'your_preferred_team_name'

如果您希望所有团队都在一个查询中,那么

select t.team_name, p.player_name, p.player_age
from teams t 
inner join players p on p.team_id = t.id
Order by t.id

推荐阅读