2013-05-23 2 views
0

좋아요, 나는 hr_employeeshr_positions의 두 테이블이 있습니다. hr_positions에는 쿼리와 일치하는지 테스트하고 볼 필요가있는 designation 필드가 있습니다. 나는 특정 지정 (hr_positions.designation)와 일치 특정 상태 (hr_employees.status)입니다 특정 이동 (hr_employees.shift)의 모든 직원의 수에 필요2 개의 테이블이있는 특정 JOIN

: 여기 내 상황입니다.

현재 다음 SQL을 사용하고 있지만 오류가 발생합니다. 나는 테이블 100 %를 조인하는 방법을 확신하지 못했기 때문에, 우리가 한 일을 왜하는지에 대한 약간의 설명이 이것을 이해하는 데 도움이 될 것입니다.

SELECT count(*) FROM hr_employees he 
JOIN hr_positions hp ON he.position = hr_positions.id 
WHERE he.id != 0 AND 
he.shift = 1 AND 
hp.designation != 2 

빠른 답변입니다.

편집 편집 편집

알 수없는 열이 '절에'의 'hr_positions.id'내가 오류입니다.

+0

당신의 ON 절에 이름을 사용할 필요가? 질문에 테이블 정의를 추가하면 도움이 될 것입니다. – andrewsi

+1

'JOIN hr_positions hp ON he.position = hr_positions.id' 당신이 이미 그것을 이름 지었기 때문에'hr_positions' 대신'hp'를 사용합니다 –

+0

당신의 테이블 스키마는'hr_positions' 테이블이 아닌 에러에서 나타날 것입니다 'id' 필드가 있습니다 – fullybaked

답변

2
SELECT count(*) FROM hr_employees he 
JOIN hr_positions hp ON he.position = hp.id 
WHERE he.id != 0 AND 
he.shift = 1 AND 
hp.designation != 2 

당신의 테이블 hr_positions 이미 hp라는 id 필드를 일치 지정이 던지고 어떤 오류

+0

모두에게 감사드립니다. 이것이 내가 필요한 대답이다. StackOverflow를 사용하면 몇 분 안에 답변으로 표시됩니다. – webdevsoup

0

체크 다음 쿼리, 당신은

SELECT count(*) FROM hr_employees he 
JOIN hr_positions hp ON he.id = hp_positions.id 
WHERE he.id != 0 AND 
he.shift = 1 AND 
hp.designation != 2 
관련 문제