I am having a DB with following tables :
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)
);
Other Table ADDRESS is as follow :
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)
);
ADDRESSTYPE Table is to tell whether address is Residential, Office, Postal
create table ADDRESSTYPE
(
AddType_ID CHAR(1) NOT NULL,
Add_Type VARCHAR(15) NOT NULL,
PRIMARY KEY(AddType_ID)
);
JobTime Table describes whether job of employee is Full Time or Casual.
Create table JOBTIME
(
JobTime_ID CHAR(1) NOT NULL,
JobTime_Desc VARCHAR(10) NOT NULL,
PRIMARY KEY(JobTime_ID)
);
Now as each of them will be having a different salary so For fulltime and casual we have two seperate tables.
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);
Now I want list of names , complete address of all employees sorted by their salary and indicate if the employee works fulltime or casual. Here name is combination of both FName and LName represented in Name column and combination of Street, Suburb State Postcode (e.g. 123 Anzac Pde, Maroubra NSW 2038) in a column labelled ADDRESS . Now I know to do it with help of Join Statements. But if we are supposed to do it without use of JOIN statement then what can be SQL Query for this problem ?
I need to take Address from ADDRESS TABLE and Salary from FULLTIME and CASUAL table depending on job type of employee