찾다

 >  Q&A  >  본문

mysql 如何将女学生中低于总平均成绩的成绩提高5%?

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是怎样的呢? 望告知

PHP中文网PHP中文网2829일 전2260

모든 응답(3)나는 대답할 것이다

  • 阿神

    阿神2017-04-17 15:41:31

    으아악

    회신하다
    0
  • 阿神

    阿神2017-04-17 15:41:31

    으아악

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 15:41:31

    SC 테이블의 CID는 코스 ID를 나타내므로 코스별로 분류해야 합니다. 예를 들어 중국어 평균 점수가 80점이라면 중국어 점수가 80점 미만인 여자의 점수는 5점씩 증가합니다. %, 그리고 각 코스는 이 논리를 따르십시오

    제 이해가 맞나요? 맞다면 코드를 입력하겠습니다.

    회신하다
    0
  • 취소회신하다