Upload
lynne-moore
View
257
Download
0
Embed Size (px)
Citation preview
ObjectivesLearn how to run a query as a nested sub-
queryCondition on nested queryApplication of nested queryRestriction of nested queryPair wise and not pair wise comparisonNested query at multiple levelUse correlated sub-query
DefinitionsSub-query is a query inside another queryOuter query vs. Inner queryInner query executed firstEnclose queries are parenthesis Do not add ORDER BY to sub-query (why)?Result of sub-query will be used by outer
query
Example 1Employee (Name, SSN, Salary, B_date,
Starting_Date, Dept)List Employees name who have salary higher
than Mr. Smith:SELECT Name FROM Employee WHERE Salary>
(SELECT Salary FROM Employee WHERE Name=‘Smith’);
Example 1List Employees name who have salary higher
than Mr. Smith:SELECT A.Name FROM Employee A, Employee BWHERE B.Name=‘Smith’ AND
A.salary>B.salary;
Use of IN in Sub-QuerySELECT NameFROM EmployeeWHERE Id IN
(SELECT Id FROM EmployeeWHERE Salary BETWEEN 20000 AND
50000);
Use of IN in Sub-QuerySELECT NameFROM EmployeeWHERE Id IN
(SELECT Id FROM EmployeeWHERE NOT Salary BETWEEN 20000 AND
50000);
Use Sub-Query to join tablesDepartment (Name, Phone, Address,
No_Employee)
SELECT Name FROM EmployeeWHERE Dept IN
(SELECT Name FROM DepartmentWHERE No_Emplyee>20);
ExampleSELECT Employee.Name FROM Employee, DepartmentWHERE Department.Name=
Employee.Dept AND No_Employee>20;
Multiple Levels Nested QueriesSELECT NameFROM EmployeeWHERE Salary>
(SELECT AVG(Salary)FROM EmployeeWHERE Dept IN
(SELECT Name FROM Department
WHERE No_Emplyee>20);