>  기사  >  데이터 베이스  >  하위 쿼리 오류: 별칭 참조 문제가 있는 MySQL 업데이트 쿼리를 수정하는 방법?

하위 쿼리 오류: 별칭 참조 문제가 있는 MySQL 업데이트 쿼리를 수정하는 방법?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 07:50:03838검색

How to Fix a MySQL UPDATE Query with Subquery Error: Alias Reference Issues?

하위 쿼리를 사용하여 MySQL 업데이트 쿼리 오류 수정

제공된 쿼리에는 하위 쿼리를 사용하여 Competition 테이블의 NumberOfTeams 필드를 업데이트하는 작업이 포함됩니다. 그런데 구문 문제로 인해 사용자에게 오류가 발생합니다.

문제는 UPDATE 문의 WHERE 절에 별칭(a)을 잘못 사용했기 때문입니다. MySQL에서 별칭은 하위 쿼리 자체의 범위 내에서만 유효합니다. 따라서 WHERE 절에서 별칭 a를 참조하는 것은 유효하지 않습니다.

다중 테이블 업데이트를 사용한 솔루션

이 문제를 해결하려면 다중 테이블 업데이트를 사용할 수 있습니다. . 여기에는 각 대회의 팀 수를 계산하는 하위 쿼리를 사용하여 Competition 테이블을 조인하는 작업이 포함됩니다. 조인은 CompetitionID 열을 사용하여 수행되며 업데이트된 값은 조인된 하위 쿼리를 기반으로 설정됩니다.

<code class="sql">UPDATE Competition AS C
INNER JOIN (
  SELECT CompetitionId, COUNT(*) AS NumberOfTeams
  FROM PicksPoints AS p
  WHERE UserCompetitionID IS NOT NULL
  GROUP BY CompetitionId
) AS A ON C.CompetitionID = A.CompetitionID
SET C.NumberOfTeams = A.NumberOfTeams;</code>

하위 쿼리는 각 대회의 팀 수를 계산한 다음 NumberOfTeams를 업데이트하는 데 사용됩니다. 메인 경쟁 테이블의 열. 이 방법을 사용하면 하위 쿼리 결과가 업데이트 논리에서 올바르게 참조됩니다.

예 및 데모

이 수정된 쿼리의 데모는 http://에서 볼 수 있습니다. www.sqlfiddle.com/#!2/a74f3/1. 이 쿼리를 실행하면 각 대회에 대한 올바른 팀 수로 대회 테이블이 성공적으로 업데이트됩니다.

위 내용은 하위 쿼리 오류: 별칭 참조 문제가 있는 MySQL 업데이트 쿼리를 수정하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.