我有以下各表一DB:員工詳細信息與他們的工作性質
create table EMPLOYEE
(
Emp_ID INT NOT NULL AUTO_INCREMENT,
Emp_FName VARCHAR(30) NOT NULL,
Emp_LName VARCHAR(30) NOT NULL,
Address_ID_Resident INT REFERENCES ADDRESS(Address_ID),
JobTime_ID CHAR(1) REFERENCES JOBTIME(JobTime_ID),
PRIMARY KEY(Emp_ID)
);
其他表地址如下:
create table ADDRESS
(
Address_ID INT NOT NULL AUTO_INCREMENT,
Address_St VARCHAR(50) NOT NULL,
Address_City VARCHAR(30) NOT NULL,
Address_State VARCHAR(3) NOT NULL,
Address_PostCode CHAR(4) NOT NULL,
Add_TypeID CHAR(1) REFERENCES ADDRESSTYPE(Add_TypeID),
PRIMARY KEY(Address_ID)
);
地址類型表就是告訴地址是否是住宅,辦公,郵政
create table ADDRESSTYPE
(
AddType_ID CHAR(1) NOT NULL,
Add_Type VARCHAR(15) NOT NULL,
PRIMARY KEY(AddType_ID)
);
JobTime表描述了員工的工作是全職還是休閒。
Create table JOBTIME
(
JobTime_ID CHAR(1) NOT NULL,
JobTime_Desc VARCHAR(10) NOT NULL,
PRIMARY KEY(JobTime_ID)
);
現在,因爲每個人都會是具有不同的薪酬所以對於全職和休閒,我們有兩個單獨的表。
Create table FULLTIME
(
Emp_ID INT NOT NULL,
Emp_salary_yearly DOUBLE(10,2) NOT NULL,
JobType_ID INT REFERENCES JOBTYPE(JobType_ID),
FullTimeJob_ID CHAR(1) NOT NULL DEFAULT 'F',
PRIMARY KEY(Emp_ID)
);
ALTER TABLE FULLTIME ADD FOREIGN KEY(Emp_ID) REFERENCES EMPLOYEE(Emp_ID);
ALTER TABLE FULLTIME ADD FOREIGN KEY(FullTimeJob_ID) REFERENCES JOBFULLTIME(FullTimeJob_ID);
Create table CASUALTIME
(
Emp_ID INT NOT NULL,
Emp_salary_hourly DOUBLE(10,2) NOT NULL,
JobType_ID INT REFERENCES JOBTYPE(JobType_ID),
CasualJob_ID CHAR(1) NOT NULL DEFAULT 'C',
PRIMARY KEY(EMP_ID)
);
ALTER TABLE CASUALTIME ADD FOREIGN KEY(Emp_ID) REFERENCES EMPLOYEE(Emp_ID);
ALTER TABLE CASUALTIME ADD FOREIGN KEY(CasualJob_ID) REFERENCES JOBCASUALTIME(CasualJob_ID);
現在我想的名字列表,通過他們的工資排序的所有員工的完整地址,並註明如果員工全職工作或休閒。這裏的名字是名稱列中所示的FName和LName的組合以及街道,郊區州郵政編碼(例如,123 Anzac Pde,Maroubra NSW 2038)在標記爲ADDRESS的列中的組合。現在我知道要通過加入語句來完成它。但是,如果我們應該在不使用JOIN語句的情況下執行此操作,那麼對於此問題可以使用SQL Query?
我需要從地址表和工資地址從FULLTIME休閒表根據作業類型的員工
到目前爲止您嘗試了什麼查詢? – Sachu
@Sachu我正面臨着如何將Emp_salary_yearly和Emp_salary_hourly結合到一個列中的問題? – ms8
難道你不認爲地址表應該有列員工ID!我剛剛檢查了兩張桌子,但我不知道如何獲得員工地址! –