2013-04-24 2 views
1
select * 
from (select * from table) 'table1'; 

나는이 오류가 무엇입니까 이유를 볼 수 없습니다 :MySQL의 구문 오류 근처

ERROR 1064 (42000) : 내가 체크 한You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''table1'' at line 2

을 매뉴얼 (MySQL subquery in FROM clause)과 예제와 내 작은 진술 사이의 차이점을 볼 수 없습니다.

답변

2

표 이름은/별칭은 당신이 아니라 앞으로 따옴표보다 따옴표를 다시 할 생각 역 따옴표 또는 아무것도

select * 
from (select * from table1) table1; 
0

로 묶어야합니다 다음 중 하나를

select * 
from (select * from table) `table1`; 

앞으로 따옴표는 문자열 상수를 지정합니다. 역 따옴표는 이름을 한정합니다.

0

테이블 인 하위 쿼리가있는 경우 이름으로 선언해야합니다.

select * from (select * from table1) as x 
+0

아니요. OP는 그것을하고 있지만 작은 따옴표를 사용하면 별칭을 문자열이 아닌 별칭/필드/테이블 이름이됩니다. –

0

뿐만 아니라 별칭 주위에 따옴표를 참을 수 없어, 나는 그것이 MySQL의 예약어이기 때문에 당신은 또한 주위의 하위 쿼리에서 "테이블"역 따옴표가 필요합니다 생각으로 (실제로는 테이블의 이름을 않았다 당신을 가정 "테이블")

select * from (select * from `table`) table1;

관련 문제