Mysql 计算在sql中使用其他表重复字符的次数

Mysql 计算在sql中使用其他表重复字符的次数,mysql,sql,join,count,Mysql,Sql,Join,Count,我必须为每一位运动员展示他参加过的比赛的数量以及参加过每一场比赛的运动员。我试图使用左连接和计数,但我总是有字段 下表结构如下:- 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

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

下表结构如下:-

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并返回参加比赛的运动员人数。

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

*每个运动员参加的比赛次数

'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

MySQL或plsql在这里标记错误,因为MySQL和Oracle数据库plsql不一样,请检查。。请删除错误的标签并发布您尝试过的代码,以便人们可以帮助您编辑。请您的问题更清楚地解释您需要的结果。根本不清楚,你要问的是:为每个运动员展示他参加过的比赛的数量和参加过每一场比赛的运动员——这听起来像是两个不同的结果,因此应该是两个独立的问题。必须编写一个函数,获取比赛id并返回参加比赛的运动员人数——这听起来像是第三个问题。而计算一个字符从sql中的另一个表中重复使用多少次的标题则讲述了一个完全不同的故事。它在一个表中包含您请求的所有数据