我有两个表的简单数据库。
在teams
表中有team
和id
列。
players
表具有列player_name
,player_age
,position
和team_id
的列。
team_id
表中的 players
是外键,它引用team_name
表中的teams
。
我想使用PHP在HTML表中显示此信息,在该表中我将带有team_name
,player_name
和player_age
的标题。
我只需要唯一的team_name
值,因为我想使用while循环回显整个表,因此我需要它们仅在标头中回显一次。我希望这是有道理的。
我的问题是,我不知道如何编写查询,该查询将返回team_name
表中不同的teams
值,但返回players
表中的所有球员和年龄信息。
我尝试使用联接,但是最终总是拥有与team_name
个值相同数量的player_name
个值。
我这样做只是为了锻炼身体,因此现在我不再担心任何安全问题和类似的事情。
答案 0 :(得分:1)
假设您要显示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.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