多表查询
create table tb_department (
DeptID varchar2(20) not null,
deptName VARCHAR2(20) not null,
deptAllowance NUMBER not null,
Manager VARCHAR2(20) not null,
deptTel NUMBER not null,
constraint PK_DEPARTMENT primary key (DeptID)
);
create table tb_salary (
salID varchar2(20) primary key,
EmpIDvarchar2(20) unique references tb_employee(EmpID),
Salary NUMBER,
bonusNUMBER,
deductNUMBER default 0
);
--加班
create table tb_Extrawork (
ewIDvarchar2(20) primary key,
EmpID varchar(20) references tb_employee(EmpID),
EwDate DATE ,
EwConutNUMBERnot null
);
--考勤
create table tb_Attendance (
attIDvarchar2(20) primary key,
AttDate DATE,
EmpID varchar2(20) references tb_employee(EmpID),
ConutAtt NUMBER
);
我想查出 tb_salary 表中所有字段 与empid =tb_department=tb_Extrawork=tb_Attendance中attdate与EwDate 在同一个月中的数据
----------------
EmpID Salary bonus deduct EwDate AttDate ConutAtt deptAllowance EwConut
我发现我对多表连接查询并不懂还希望你们给我点学习建议,谢谢
[解决办法]
select ts.EmpID,ts.Salary,ts.bonus,ts.deduct, te.ewdate,te.EwConut, ta.attdate,ta.ConutAttfrom tb_salary ts, tb_Extrawork te, tb_Attendance tawhere ts.empid = te.empidand te.empid = ta.empidand to_char(te.EwDate,'MM') = to_char(ta.AttDate,'MM')order by te.EwDate;要得到deptAllowance信息需要通过employee表的depID去连tb_department.