Mega Code Archive

 
Categories / MySQL Tutorial / Table Join
 

RIGHT JOIN

A RIGHT JOIN is a variation of Left JOIN where all the data on the RIGHT side of the join (the second table) is returned regardless of the presence of data from the first table. mysql> mysql> CREATE TABLE Employee(     ->     id            int,     ->     first_name    VARCHAR(15),     ->     last_name     VARCHAR(15),     ->     start_date    DATE,     ->     end_date      DATE,     ->     salary        FLOAT(8,2),     ->     city          VARCHAR(10),     ->     description   VARCHAR(15)     -> ); Query OK, 0 rows affected (0.01 sec) mysql> mysql> create table job (     ->   id         int,     ->   title      VARCHAR(20)     -> ); Query OK, 0 rows affected (0.03 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->              values (1,'Jason',    'Martin',  '19960725',  '20060725', 1234.56, 'Toronto',  'Programmer'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(2,'Alison',   'Mathews',  '19760321', '19860221', 6661.78, 'Vancouver','Tester'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(3,'James',    'Smith',    '19781212', '19900315', 6544.78, 'Vancouver','Tester'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(4,'Celia',    'Rice',     '19821024', '19990421', 2344.78, 'Vancouver','Manager'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(5,'Robert',   'Black',    '19840115', '19980808', 2334.78, 'Vancouver','Tester'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(6,'Linda',    'Green',    '19870730', '19960104', 4322.78,'New York',  'Tester'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(7,'David',    'Larry',    '19901231', '19980212', 7897.78,'New York',  'Manager'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into Employee(id,first_name, last_name, start_date, end_Date,   salary,  City,       Description)     ->               values(8,'James',    'Cat',     '19960917',  '20020415', 1232.78,'Vancouver', 'Tester'); Query OK, 1 row affected (0.00 sec) mysql> mysql> insert into job (id, title) values (1,'Tester'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (2,'Accountant'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (3,'Developer'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (4,'COder'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (5,'Director'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (6,'Mediator'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (7,'Proffessor'); Query OK, 1 row affected (0.00 sec) mysql> insert into job (id, title) values (8,'Programmer'); Query OK, 1 row affected (0.01 sec) mysql> insert into job (id, title) values (9,'Developer'); Query OK, 1 row affected (0.00 sec) mysql> mysql> select * from job; +------+------------+ | id   | title      | +------+------------+ |    1 | Tester     | |    2 | Accountant | |    3 | Developer  | |    4 | COder      | |    5 | Director   | |    6 | Mediator   | |    7 | Proffessor | |    8 | Programmer | |    9 | Developer  | +------+------------+ 9 rows in set (0.00 sec) mysql> select * from Employee; +------+------------+-----------+------------+------------+---------+-----------+-------------+ | id   | first_name | last_name | start_date | end_date   | salary  | city      | description | +------+------------+-----------+------------+------------+---------+-----------+-------------+ |    1 | Jason      | Martin    | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto   | Programmer  | |    2 | Alison     | Mathews   | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester      | |    3 | James      | Smith     | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester      | |    4 | Celia      | Rice      | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager     | |    5 | Robert     | Black     | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester      | |    6 | Linda      | Green     | 1987-07-30 | 1996-01-04 | 4322.78 | New York  | Tester      | |    7 | David      | Larry     | 1990-12-31 | 1998-02-12 | 7897.78 | New York  | Manager     | |    8 | James      | Cat       | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester      | +------+------------+-----------+------------+------------+---------+-----------+-------------+ 8 rows in set (0.00 sec) mysql> mysql> SELECT employee.first_name, employee.city, job.title     -> FROM employee     -> RIGHT JOIN job     -> ON employee.ID = job.ID; +------------+-----------+------------+ | first_name | city      | title      | +------------+-----------+------------+ | Jason      | Toronto   | Tester     | | Alison     | Vancouver | Accountant | | James      | Vancouver | Developer  | | Celia      | Vancouver | COder      | | Robert     | Vancouver | Director   | | Linda      | New York  | Mediator   | | David      | New York  | Proffessor | | James      | Vancouver | Programmer | | NULL       | NULL      | Developer  | +------------+-----------+------------+ 9 rows in set (0.00 sec) mysql> mysql> drop table job; Query OK, 0 rows affected (0.00 sec) mysql> drop table Employee; Query OK, 0 rows affected (0.00 sec) mysql>