mysql> desc SC ; | |||||
---|---|---|---|---|---|
Field | Type | Null | Key | Default | Extra |
SID | int(11) | NO | PRI | NULL | |
CID | int(11) | NO | PRI | NULL | |
GRADE | int(11) | YES | NULL |
3 rows in set (0.00 sec)
mysql> desc S ; | |||||
---|---|---|---|---|---|
Field | Type | Null | Key | Default | Extra |
SID | int(11) | NO | PRI | NULL | |
SNAME | varchar(20) | YES | NULL | ||
AGE | int(11) | YES | NULL | ||
SEX | int(11) | YES | NULL |
表结构如上, 我写了一个sql:
update SC set GRADE = (GRADE+GRADE*0.05) where GRADE < (select AVG(GRADE) from SC x) and SID in (select SID from S where SEX = 1) ;
但是报错:
ERROR 1093 (HY000): You can't specify target table 'SC' for update in FROM clause
我到mysql的官网上也没找到解决的办法, 看了几个博客说是要使用中间表, 但是还是写不出来, 那么正确的sql是怎样的呢? 望告知
으아악
으아악
SC 테이블의 CID는 코스 ID를 나타내므로 코스별로 분류해야 합니다. 예를 들어 중국어 평균 점수가 80점이라면 중국어 점수가 80점 미만인 여자의 점수는 5점씩 증가합니다. %, 그리고 각 코스는 이 논리를 따르십시오
제 이해가 맞나요? 맞다면 코드를 입력하겠습니다.