Home
 Articles
 Book Store
 DIT
 Login
 Register
 News
 Online Training Courses
 Programming
 Research Papers
 Software Development
 Students Notes
  Web Hosting

 
 

10000 cute sms in 33 different categories and all mobile stuff for free please support us by visiting our sponsor website replysms.com

Learning Sql from admin of this Websie

 SQL Intro  SQL Delete  SQL Union
 SQL  Tables  SQL Order By  SQL Create
 SQL Select  SQL AND & OR  SQL Drop
 SQL Where  SQL In  SQL Alter
 SQL Like  SQL Between  SQL Functions
 SQL Insert  SQL Aliases  SQL Group By
 SQL Update  SQL Join  SQL Select Into

SQL Create View


Joins and Keys

Sometimes we have to select data from two or more tables to make our result complete. We have to perform a join.

Tables in a database can be related to each other with keys. A primary key is a column with a unique value for each row. Each primary key value must be unique within the table. The purpose is to bind data together, across tables, without repeating all of the data in every table.

In the "Employees" table below, the "Employee_ID" column is the primary key, meaning that no two rows can have the same Employee_ID. The Employee_ID distinguishes two persons even if they have the same name.

When you look at the example tables below, notice that: 

  • The "Employee_ID" column is the primary key of the "Employees" table
  • The "Prod_ID" column is the primary key of the "Orders" table
  • The "Employee_ID" column in the "Orders" table is used to refer to the persons in the "Employees" table without using their names

Employees:

Employee_ID Name
01 Tanveer, Shah
02 Bukhari, Syed
03 Bukhari, Syed
04 Amjad, Rehman

Orders:

Prod_ID Product Employee_ID
234 Printer 01
657 Table 03
865 Chair 03

 

Referring to Two Tables

We can select data from two tables by referring to two tables, like this:

Example

Who has ordered a product, and what did they order?

SELECT Employees.Name, Orders.Product
FROM Employees, Orders
WHERE Employees.Employee_ID=Orders.Employee_ID

Result

Name Product
Tanveer, Shah Printer
Bukhari, Syed Table
Bukhari, Syed Chair

Example

Who ordered a printer?

SELECT Employees.Name
FROM Employees, Orders
WHERE Employees.Employee_ID=Orders.Employee_ID
AND Orders.Product='Printer'

Result

Name
Tanveer, Shah

 

Using Joins

OR we can select data from two tables with the JOIN keyword, like this:

Example INNER JOIN

Syntax

SELECT field1, field2, field3
FROM first_table
INNER JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

Who has ordered a product, and what did they order?

SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

The INNER JOIN returns all rows from both tables where there is a match. If there are rows in Employees that do not have matches in Orders, those rows will not be listed.

Result

Name Product
Tanveer, Shah Printer
Bukhari, Syed Table
Bukhari, Syed Chair

Example LEFT JOIN

Syntax

SELECT field1, field2, field3
FROM first_table
LEFT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

List all employees, and their orders - if any.

SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

The LEFT JOIN returns all the rows from the first table (Employees), even if there are no matches in the second table (Orders). If there are rows in Employees that do not have matches in Orders, those rows also will be listed.

Result

Name Product
Tanveer, Shah Printer
Bukhari, Syed  
Bukhari, Syed Table
Bukhari, Syed Chair
Amjad, Rehman  

Example RIGHT JOIN

Syntax

SELECT field1, field2, field3
FROM first_table
RIGHT JOIN second_table
ON first_table.keyfield = second_table.foreign_keyfield

List all orders, and who has ordered - if any.

SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID

The RIGHT JOIN returns all the rows from the second table (Orders), even if there are no matches in the first table (Employees). If there had been any rows in Orders that did not have matches in Employees, those rows also would have been listed.

Result

Name Product
Tanveer, Shah Printer
Bukhari, Syed Table
Bukhari, Syed Chair

Example

Who ordered a printer?

SELECT Employees.Name
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID
WHERE Orders.Product = 'Printer'

Result

Name
Tanveer, Shah

 


  

 

 
 

Copyright © http://www.itbaba.com. 2007 All Rights