2011-10-04 2 views
2

두 개의 테이블이 각각 Table_Employee, Table_Department인데 직원 번호가인 직원을 선택하려면 해당 테이블과 함께 이름을 표시하려고합니다.SQL 쿼리 조건을 기반으로 두 테이블에서 여러 열을 선택하려면

이 작업은 단일 쿼리로 수행되어야합니다. 그것을 쉽게 할 수 있습니까? 여기 내 테이블 구조입니다. 여기

Column_Empno는 의미 Column_Manager 될 것

테이블은 자체 참조에게 있습니다

Table_Employee 

Column_Empno  int 
Column_Fname  varchar(50) 
Column_Lname  varchar(50) 
Column_Job  varchar(50) 
Column_Manager int 
Column_HireDate date 
Column_Salary int 
Column_Commision int 
Column_DeptNo int 

Table_Department 

Column_DeptNo int 
Column_Dname  varchar(50) 
Column_Location varchar(50) 
+0

숙제? 숙제 ! – wildplasser

+0

이것이 실제 스키마입니까? 'varchar (50)'의 성은 너무 광범위하게 들었고, Empno는 아마 숫자가 아니며, Table_Employee는 너무 많은 일을합니다 : 인적 사항 ** 및 ** 급여 (현재 상태 값만) ** 조직도. – onedaywhen

답변

4

관리자 + 부서 :

SELECT Column_Fname, Column_Lname, table_Department.Column_Dname 
FROM Table_Employee 
INNER JOIN table_Department ON Table_Employee.Column_DeptNo = table_Department.Column_DeptNo 

또는 당신은 또한 다음과 같이 작성할 수있다 :

SELECT Column_Fname, Column_Lname, table_Department.Column_Dname 
FROM Table_Employee 
WHERE Table_Employee.Column_DeptNo = table_Department.Column_DeptNo 

그것은 테스트되지 않았습니다. 그런데 왜 "Fname", "Lname", ... 및 테이블 "Table _...."뿐만 아니라 "Employee"및 "Department"가 아닌 Colum의 이름을 "Column _..."으로 지정합니까? "?

+0

사양의 "3 배 이상"부분은 무엇입니까? – onedaywhen

+0

두 번째 예제의 테이블'table_Department'에 대한 참조가 없습니다 ... – MatBailie

+0

대단히 감사합니다 답변을 드리기 위해이 SQL과 해당 작업에 매우 익숙합니다. – Jpaul

3
select 
    t1.column_manager, 
    t2.column_dname 
from 
(
    select column_manager, column_deptno = max(column_deptno) 
    from table_employee 
    group by column_manager 
    having count(*) > 3 
) t1 
join table_department t2 on t1.column_deptno = t2.column_deptno 
관련 문제