찾다

 >  Q&A  >  본문

MySQL의 업데이트 절에서 동일한 대상 테이블을 사용하는 것을 허용하지 않습니다.

"직원"이라는 테이블이 있습니다. 테이블 생성 코드는 다음과 같습니다.

으아아아

양식 내용은 다음과 같습니다.

으아아아

이제 'e_id'를 업데이트하고 싶습니다. 먼저 테이블에 동일한 e_id가 있는지 확인하고, 테이블에 없으면 지정된 e_id가 있는 행만 업데이트하고, 그렇지 않으면 업데이트하지 않습니다. 따라서 내 업그레이드 쿼리는 다음과 같습니다.

으아아아

그러나 다음과 같은 오류가 발생합니다:

오류 1093(HY000): FROM 절에서 업데이트할 대상 테이블 "employee"를 지정할 수 없습니다. 나는 다음 쿼리를 시도했습니다:

으아아아

그러나 이 역시 테이블 업데이트에 실패하고 다음 결과가 표시됩니다.

으아아아

다음 코드도 시도했습니다:

으아아아

그러나 이 역시 테이블 업데이트에 실패하고 다음과 같은 결과를 제공합니다. 쿼리 확인, 0개 행이 영향을 받음(0.00초) 일치하는 줄: 0 변경: 0 경고: 0 도와주세요. 미리 감사드립니다.

P粉982009874P粉982009874241일 전381

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

  • P粉604669414

    P粉6046694142024-04-03 10:18:58

    NULL 的播放方式与某些人期望的 NOT IN 不同:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=24c176ff4d4e2c52309aaca14cc121c5 因此,只需将 WHERE e_id IS NOT NULL 放在子中询问。另外,HAVING COUNT(*) >= 1 항상 1 이상의 값을 반환하므로 제거할 수 있습니다...

    으아아아

    https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2a0b036a7d1db9138e3ab29af3d346f8

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