2016-10-23 2 views
1

이 작업을 수행 할 수있는 방법이 있는지 궁금합니다. 나는 테이블을 파생 "어디 lie_start = '녹색'"(그리고 반복하고 싶지 않은 다른 조건의 무리), 숫자 (및 여러 가지 다른 정보)를 얻을 필요가 그것. 또한 추가 조건 lie_finish = 'holed'인 항목 수가 필요합니다. 현재 나는 오류가 : 테이블 mydb.x doesnt 존재합니다.select 문에서 하위 쿼리가 파생 테이블을 찾을 수 없습니까?

SELECT 
    COUNT(*) AS total, 
    (SELECT COUNT(*) FROM x WHERE lie_finish='holed') as holed 
FROM (SELECT * FROM mydb.strokes WHERE lie_start='green') as x 

답변

1

테이블 이름을 반복해야합니다. 테이블 별칭을 인식 할 수 없습니다 :

select count(*) as total, sum(lie_finish = 'holed') as holed 
from mydb.strokes s 
where lie_start = 'green'; 
:

SELECT COUNT(*) AS total, 
     (SELECT COUNT(*) FROM mydb.strokes WHERE lie_finish='holed') as holed 
FROM (SELECT * FROM mydb.strokes WHERE lie_start='green') as x; 

그러나이 훨씬 더 간단하게 작성하다

관련 문제