簡體   English   中英

如何在SQL中設置數據之間的關系限制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM