首页  |  新闻  |  天气  |  联系我们  |  管理登陆 
逸飞和逸翔 家庭百事 科技纵横 家庭影集 网络文摘 音乐&艺术 友情链结
Business
中国瓷器
Computer/Internet
ASP/VB
SQL server
FLASH
Home Network
IIS SERVER
photoshop
search engine
Perl
General Problem Fix
Powerpoint
Router/Switch/Hub
Excel
FTP
.NET
Internet Security
Cloud Computing
GPG
PHP
语义搜索(semantic search)
股票
Glossaries
IPHONE
Books
 
Send to printer
I have used the following 2 tables Employee and Department as examples.


   Employee Table :-                                                  Department Table:-  

 EmployeeID  EmployeeName  DepartmentID            DepartmentID    DepartmentName
    1                Smith                 1                                  1                    HR
    2                Jack                   2                                  2                    Finance
    3                Jones                 2                                  3                    Security
    4                Andrews             3                                  4                    Sports
    5                Dave                  5                                  5                     HouseKeeping
    6                Jospeh                                                   6                    Electrical
    ************************************************************************************************
Inner Join

An Inner Join will take two tables and join them together based on the values in common columns ( linking field ) from each table.

Example 1 :- To retrieve only the information about those employees who are assinged to a department.

Select Employee.EmployeeID,Employee.EmployeeName,Department.DepartmentName From Employee Inner Join Department on Employee.DepartmentID = Department.DepartmentID

The ResultSet will be :-

 EmployeeID    EmployeeName    DepartmentName
    1                  Smith                  HR
    2                  Jack                    Finance
    3                  Jones                  Finance
    4                  Andrews              Security
    5                  Dave                    HouseKeeping

Example 2:- Retrieve only the information about departments to which atleast one employee is assigned.

Select Department.DepartmentID,Department.DepartmentName From Department Inner Join Employee on Employee.DepartmentID = Department.DepartmentID

The ResultSet will be :-

 DepartmentID    DepartmentName
      1                     HR
      2                     Finance
      3                     Security
      5                     HouseKeeping
    ************************************************************************************************

Outer Joins :-

Outer joins can be a left, a right, or full outer join.

Left outer join selects all the rows from the left table specified in the LEFT OUTER JOIN  clause, not just the ones in which the joined columns match.

Example 1:- To retrieve the information of all the employees along with their Department Name if they are assigned to any department.


Select Employee.EmployeeID,Employee.EmployeeName,Department.DepartmentName From Employee LEFT OUTER JOIN Department on Employee.DepartmentID = Department.DepartmentID

The ResultSet will be :-

 EmployeeID  EmployeeName  DepartmentName
    1                Smith                 HR
    2                Jack                   Finance
    3                Jones                 Finance  
    4                Andrews             Security
    5                Dave                  HouseKeeping
    6                Jospeh          

Right outer join selects all the rows from the right table specified in the RIGHT OUTER JOIN  clause, not just the ones in which the joined columns match.


Example 2:- use Right Outer join to retrieve the information of all the departments along with the detail of EmployeeName belonging to each Department, if any is available.

Select Department.DepartmentID,Department.DepartmentName,Employee.EmployeeName From Employee Outer Join Department on Employee.DepartmentID = Department.DepartmentID

The ResultSet will be :-

 DepartmentID    DepartmentName      EmployeeName
        1                    HR                        Smith
        2                    Finance                 Jack
        2                    Finance                 Jones
        3                    Security                 Andrews
        4                    Sports                   NULL
        5                    HouseKeeping        Dave
        6                    Electrical               NULL

This query will result in Null value for Employee Name where no Employee is assigned to that department.
back to top