nested queries (sub-queries). objectives learn how to run a query as a nested sub-query condition on...

12
Nested Queries (Sub-Queries)

Upload: lynne-moore

Post on 02-Jan-2016

250 views

Category:

Documents


0 download

TRANSCRIPT

Nested Queries (Sub-Queries)

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;

Example 2SELECT Name FROM Employee WHERE Salary =

(SELECT MAX(Salary) FROM Employee);

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);

Pair Wise Comparison in Sub-QuerySELECT Name, Id, GPA FROM Student WHERE (Major, Minor) IN

(SELECT (Minor, Major) FROM StudentWHERE Name=‘Smith’);