MySQL 쿼리에서 ANSI 1992 JOIN 구문과 쉼표를 함께 사용하면 오류가 발생하는 이유
MySQL 쿼리에서 여러 테이블을 조인할 때는 ANSI 1992 JOIN 구문이나 쉼표로 구분된 표기법을 일관되게 사용해야 합니다. 이 두 가지 방법을 혼합하면 "'on 절'의 알 수 없는 열 'm.id'" 오류와 같은 오류가 발생할 수 있습니다.
오류 원인
다음 쿼리에서:
<code class="language-sql">SELECT m.*, t.* FROM memebers as m, telephone as t INNER JOIN memeberFunctions as mf ON m.id = mf.memeber INNER JOIN mitgliedTelephone as mt ON m.id = mt.memeber WHERE mf.function = 32</code>
이 쿼리는 쉼표 표기법(m과 t를 조인하는 데 사용됨)과 ANSI 1992 JOIN 구문(mf와 mt를 조인하는 데 사용됨)을 혼합하여 사용하려고 합니다. MySQL 문서에 따르면 이 방법은 더 이상 지원되지 않습니다. 이제 쉼표 연산자는 JOIN보다 우선순위가 낮아 피연산자 해석 오류가 발생합니다.
솔루션
이 문제를 해결하려면 쉼표 표기법이나 ANSI 1992 JOIN 구문을 일관되게 사용하세요. 명확성과 신뢰성을 향상하려면 JOIN 구문을 사용하는 것이 좋습니다.
<code class="language-sql">SELECT m.*, t.* FROM memebers AS m JOIN telephone AS t ON m.id = t.id JOIN memeberFunctions AS mf ON m.id = mf.memeber AND mf.function = 32 JOIN mitgliedTelephone AS mt ON m.id = mt.memeber</code>
메모
위 내용은 MySQL 쿼리에서 ANSI 1992 조인과 쉼표를 혼합하면 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!