programing

조인을 사용하려고 할 때 SQL 구문에 오류가 발생함

projobs 2022. 9. 25. 11:16
반응형

조인을 사용하려고 할 때 SQL 구문에 오류가 발생함

나는 지금 이것을 하려고 하고 있다.sql질의는 하지만 SQL은 제가 가장 잘하는 게 아닙니다.

var sqlQuery = `
    SELECT user.ID, user.email, user.first_name, user.last_name,
    user.address1, user.address2, user.country, user.gender  
    FROM subscriber AS user 
    LEFT JOIN (
        SELECT sID, name, experience, locked  
        FROM chars
    ) AS char 
      ON user.ID = char.sID 
    WHERE user.ID = ?
`;

하지만 다음 오류가 발생합니다.

[1] Errors  { [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'char
[1]           ON user.ID = char.sID
[1]         WHERE user.ID = 13' at line 4]
[1]   code: 'ER_PARSE_ERROR',
[1]   errno: 1064,
[1]   sqlState: '42000',
[1]   index: 0 }

어떤 정보라도 주시면 감사하겠습니다.

Char는 예약 키워드입니다.이 키워드는 https://dev.mysql.com/doc/refman/5.7/en/keywords.html 에서 찾을 수 있습니다.

그래서 코드를 이렇게 바꾸면 효과가 있어요.일반적으로 데이터 유형과 충돌하는 변수 이름은 사용하지 마십시오.

( SELECT sID, name, experience, locked  
FROM chars ) AS c

구문은 LEFT JOIN chars가 char로 됩니다.

var sqlQuery = `
SELECT user.ID, user.email, user.first_name, user.last_name,
user.address1, user.address2, user.country, user.gender  
FROM subscriber AS user 
LEFT JOIN chars AS char 
  ON user.ID = char.sID 
WHERE user.ID = ?

이름, 경험, 잠긴 필드를 원하는 이유는 무엇입니까?

언급URL : https://stackoverflow.com/questions/35589148/having-an-error-in-my-sql-syntax-when-trying-to-use-joins

반응형