Mysql 如何在SQL中设置数据之间关系的限制
所以,我有一个PlayerId、firstname、lastname等字段的Player表。。以及包含字段(例如,TeamId、teamname等)的Teams表。。我还有一个查找表,通过显示哪名球员在哪支球队,将两张表连接在一起。我的问题是,如果我想向用户显示未超过20人限制的球队,并且球队中仍有空间,我将如何做 将以下内容视为表格和列Mysql 如何在SQL中设置数据之间关系的限制,mysql,sql,database,Mysql,Sql,Database,所以,我有一个PlayerId、firstname、lastname等字段的Player表。。以及包含字段(例如,TeamId、teamname等)的Teams表。。我还有一个查找表,通过显示哪名球员在哪支球队,将两张表连接在一起。我的问题是,如果我想向用户显示未超过20人限制的球队,并且球队中仍有空间,我将如何做 将以下内容视为表格和列 player_table ------------ playerid firstname lastname . teams ----- teamid tea
player_table
------------
playerid
firstname
lastname
.
teams
-----
teamid
teamname
.
player_team_association
------------------------
teamid
playerid
.
您的查询应该如下所示
select t.teamname, count(pta.playerid) as PlayerLimit,
(20 - PlayerLimit) as AvailableSlots
from teams t,player_team_association pta
where t.teamid = pta.teamid
group by pta.teamid having PlayerLimit <=20
选择t.teamname,count(pta.playerid)作为PlayerLimit,
(20-玩家限制)作为可用场地
来自t队,球员协会pta
其中t.teamid=pta.teamid
按pta.teamid分组,具有PlayerLimit,将以下内容视为表格和列
player_table
------------
playerid
firstname
lastname
.
teams
-----
teamid
teamname
.
player_team_association
------------------------
teamid
playerid
.
您的查询应该如下所示
select t.teamname, count(pta.playerid) as PlayerLimit,
(20 - PlayerLimit) as AvailableSlots
from teams t,player_team_association pta
where t.teamid = pta.teamid
group by pta.teamid having PlayerLimit <=20
选择t.teamname,count(pta.playerid)作为PlayerLimit,
(20-玩家限制)作为可用场地
来自t队,球员协会pta
其中t.teamid=pta.teamid
按pta.teamid分组,球员限制显示球员数量不超过20人的球队:
SELECT t.teamname
FROM team t
LEFT JOIN player_team pt ON
t.teamid = pt.teamid
GROUP BY t.teamname
HAVING COUNT(pt.playerid) <= 20 -- you probably mean < 20
选择t.teamname
来自t队
左键加入球员团队
t、 teamid=pt.teamid
按t.teamname分组
计数(玩家ID)显示玩家数量不超过20的团队:
SELECT t.teamname
FROM team t
LEFT JOIN player_team pt ON
t.teamid = pt.teamid
GROUP BY t.teamname
HAVING COUNT(pt.playerid) <= 20 -- you probably mean < 20
选择t.teamname
来自t队
左键加入球员团队
t、 teamid=pt.teamid
按t.teamname分组
拥有COUNT(pt.playerid)您可以使用COUNT()计算与团队相关的玩家的数量,并使用减号20筛选结果。。是的,在@scaisEdge建议的行中。尝试引用:连接表,SQL中的count()函数。哦,当然是count()。我甚至没有想到XD,非常感谢@scaisEdge您可以使用count()计算与团队相关的玩家数量,并使用减号20筛选结果。。是的,在@scaisEdge建议的行中。尝试引用:连接表,SQL中的count()函数。哦,当然是count()。我甚至没有想到XD,非常感谢@SCAISEDGE您需要按照完全没有球员的团队使用左入
。。。错过了这个场景@StormoPM请使用查询的左侧外部加入版本编辑注释:)您需要按照完全没有玩家的团队使用左侧加入
。是的。。。错过了这个场景@StormoPM请使用查询的左侧外部联接版本编辑注释:)