首页 > 解决方案 > 计算从 sql 中的其他表中使用重复字符的次数

问题描述

我必须向每个运动员展示他参加过的比赛数量以及参加过每场比赛的运动员。我正在尝试使用左连接和计数,但我总是有字段。

下面是一个表结构:-

Athlete (A_ID, A_NAME, A_SURNAME, SQUAD_NAME, NATIONALITY)  
PRIMARY KEY=A_ID

RACE(R_ID, R_NAME, R_TYPE, CATEGORY)  
PRIMARY KEY=R_ID

PARTICIPATION(R_ID, A_ID, POSITION)   

R_ID and A_ID are foreign keys but are used as a primary key in `PARTICIPATION` table

任何帮助将不胜感激:我必须为每个运动员展示他参加的比赛数量以及参加过每场比赛的运动员。我正在尝试使用左连接和计数,但我总是有字段。我必须创建一个触发器,每次位置更改时,它都会阻止同一场比赛中该位置的重复,并且位置值不必传递实际值

必须编写一个函数来获取比赛 ID 并返回参加过的运动员人数。

标签: mysqlsqljoincount

解决方案


我创建了这些代码,但不知道这些代码是否正确,但都可以编译

*对于每位运动员,他参加的比赛次数

'SELECT ATHLETE.A_NAME, COUNT(PARTICIPATION.G_ID) 
 FROM ATHLETE
 left JOIN PARTICIPATION
 ON ATHLETE.A_ID=PARTICIPATION.A_ID
 GROUP BY PARTICIPATION.G_ID
 HAVING COUNT (PARTICIPATION.G_ID)>1
 ORDER BY ATHLETE.A_NAME;'

转动参加过每场比赛的运动员

SELECT ATHLETE.A_NAME
FROM ATHLETE
LEFT JOIN PARTICIPATION ON ATHLETE.A_ID=PARTICIPATION.A_ID
LEFT JOIN RACE ON RACE.R_ID=PARTICIPATION.R_ID
GROUP BY PARTICIPATION.A_ID
HAVING COUNT (PARTICIPATION.A_ID)=COUNT (RACE.R_ID)
ORDER BY ATHLETE.A_NAME

推荐阅读