[英]How to set a limit on the relationship between data in SQL
因此,我有一個Player表,其中包含PlayerId,firstname,lastname等字段。還有一個Teams表,其中包含TeamId,teamname等字段。我還有一個查找表,通過顯示將兩個表鏈接在一起球員在哪支球隊上。 我的問題是,如果我想向用戶顯示尚未超過20人限制的團隊,但團隊中仍有空間,我該怎么做?
顯示球員人數不超過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
添加有關插槽可用性的信息:
SELECT t.teamname, CONCAT(COUNT(pt.playerid), '/20') AS slots_taken -- if 20 is max
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
將以下內容視為表格和列,
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.