JOIN's is used to query data from two or more than two table based on relationship between certain columns in these tables.
Tables in Database are related to each other with some constraints like (Primary Key & Foreign Key)
Primary Key :- Column with unique value for each row that is not value matching to each other in the column.
Foreign Key :- Two tables are mapped through concept of primary and foreign key, that means primary key of one table is used in other table as foreign key.
Query to create the above two tables.
CREATE TABLE `project_mst` (
`PK_PROJECT_ID` varchar(10) NOT NULL,
`PROJECT_NAME` varchar(100) default NULL,
`PROJECT_DURATION` varchar(50) default NULL,
`FK_MANAGER_ID` varchar(10) default NULL,
PRIMARY KEY (`PK_PROJECT_ID`)
)
CREATE TABLE `manager_mst` (
`PK_MANAGER_ID` varchar(10) NOT NULL,
`MANAGER_NAME` varchar(100) default NULL,
PRIMARY KEY (`PK_MANAGER_ID`)
)
1. INNER JOIN
INNER JOIN returns rows when there is at least one match in both the tables.
Syntax :SELECT * FROM table1 LEFT JOIN table2 on table1.colunm_name = table2.colunm_name |
Example1 :SELECT * FROM manager_mst INNER JOIN project_mst on PK_MANAGER_ID = FK_MANAGER_ID |
Example2 :SELECT * FROM manager_mst , project_mst where PK_MANAGER_ID = FK_MANAGER_ID |
2. LEFT JOIN
Return all rows from the left table, in conjunction with rows matching in right table and if there are no matches values in the right table it returns null value.
Syntax :SELECT * FROM table1 LEFT JOIN table2 on table1.colunm_name = table2.colunm_name |
Example :SELECT * FROM manager_mst LEFT JOIN project_mst on PK_MANAGER_ID = FK_MANAGER_ID |
3. RIGHT JOIN
Return all rows from the right table, in conjunction with rows matching in left table and if there are no matches values in the left table it returns null value.
Syntax :SELECT * FROM table1 RIGHT JOIN table2 on table1.colunm_name = table2.colunm_name |
Example :SELECT * FROM manager_mst RIGHT JOIN project_mst on PK_MANAGER_ID = FK_MANAGER_ID |
4. FULL JOIN
FULL JOIN return rows when there is a match in one of the tables.
Syntax :SELECT * FROM table1 FULL JOIN table2 on table1.colunm_name = table2.colunm_name |
Example :SELECT * FROM manager_mst FULL JOIN project_mst on PK_MANAGER_ID = FK_MANAGER_ID |
5. LEFT OUTER JOIN
LEFT OUTER JOIN returns all the rows from the left table in conjunction with the matching rows from the right table. If there are no columns matching in the right table, it returns NULL values.
Syntax :SELECT * FROM table1 LEFT OUTER JOIN table2 on table1.colunm_name = table2.colunm_name |
Example :SELECT * FROM manager_mst LEFT OUTER JOIN project_mst on PK_MANAGER_ID = FK_MANAGER_ID |
6. RIGHT OUTER JOIN
RIGHT OUTER JOIN returns all the rows from the right table in conjunction with the matching rows from the left table.
Syntax :SELECT * FROM table1 RIGHT OUTER JOIN table2 on table1 .column_name = table2 .column_name |
Example :SELECT * FROM manager_mst RIGHT OUTER JOIN project_mst on PK_MANAGER_ID = FK_MANAGER_ID |
I hope that above given example gives you a better understanding of JOINs and helps you write more efficient SQL queries.
Comments
Post a Comment