2016-08-03 4 views
0

어떻게 오류 1248 (42000)을 유지합니까? 파생 테이블마다 고유 한 별칭이 있어야합니까? 나는 각 테이블에 자신의 별칭을 주었다. 그렇지 않은가? 미안하지만 나는 MySQL에 대한 첫 학기 때부터 내가 잘못하고있는 것을 너무 확신하지 못한다.오류 1248 (42000) : 파생 테이블마다 고유 한 별칭이 있어야합니다.

SELECT p.PlayerAlias as "Player", 
     s.HiScore as "Score" 
    FROM Player as p INNER JOIN Score as s ON p.PlayerID = s.PlayerID 
     LEFT OUTER JOIN (
      SELECT g.GameID 
      FROM Game as g 
      WHERE g.GameName = "Reaper" 
     ) ON s.GameID = g.GameID 
WHERE s.HiScore < 7000 AND s.HiScore > 4000; 
+1

가입 좌 OUTER 후 내부 쿼리에 별칭을 누락 g.GameID' –

+0

_derived_ 테이블에서 하위 쿼리를 참조하고 있습니다. – Uueerdo

+0

그 재미있는. 나는 먼저 답을 썼고 그 수락은 다른 사람에게 주어졌다. – FallAndLearn

답변

0

당신은 s.GameID = ON g로) '가되어야 s.GameID = g.GameID` ON)`

SELECT p.PlayerAlias as "Player", 
     s.HiScore as "Score" 
    FROM Player as p INNER JOIN Score as s ON p.PlayerID = s.PlayerID 
     LEFT OUTER JOIN (
      SELECT g.GameID 
      FROM Game as g 
      WHERE g.GameName = "Reaper" 
     ) as g ON s.GameID = g.GameID 
WHERE s.HiScore < 7000 AND s.HiScore > 4000; 
+0

그 재미 있습니다. 나는 먼저 답을 썼고 당신은 받아 들였다. – FallAndLearn

+0

@FallAnd 저에게 upvote가 있으십니까? –

+0

고마워요. 감사합니다. – FallAndLearn

1

아래의 하위 쿼리에는 별칭이 있어야합니다.

LEFT OUTER JOIN (
      SELECT g.GameID 
      FROM Game as g 
      WHERE g.GameName = "Reaper" 
     ) AS T 
관련 문제