Disclaimer: This presentation is prepared by trainees of baabtra as a part of mentoring program. This is not official document of baabtra –Mentoring PartnerBaabtra-Mentoring Partner is the mentoring division of baabte System Technologies Pvt . Ltd
JOINS AND UNION IN MySQLSHAMEEM [email protected]/Shameem
Attwitter.com/ Shameem_atin.linkedin.com/in/ shameem
at+91-9446-986-108
JOINS AND UNION
INMySQL
JOIN• To query data from two or more tables, based on a relationship between
certain column in these tables.
• Tables in a database are often related to each other with keys.
• Primary key is a column (or a combination of columns) with a unique value for each row.
• Foreign Key in one table points to a Primary Key in another table.
Different JOINs in MySQL
INNER JOIN(JOIN):
Return rows when there is at least one match in both tables.
LEFT JOIN:
Return all rows from the left table, even if there are no matches
in the right table.
RIGHT JOIN:
Return all rows from the right table, even if there are no matches in the left table.
FULL JOIN:
Return rows when there is a match in one of the tables.
But It does not support in MySQL.
Tbl_dept
pk_dept_id
dept_name
1
CSE
2 ECE
3 EEE
4 CE
tbl_student
pk_student_id student_name student_place fk_dept_id
1 baabtra1 Calicut 1
2 baabtra2 cochin 2
3 baabtra3 Kannur 3
4 baabtra4 ooty 3
5 baabtra5 munnar 1
6 baabtra6 mlp NULL
INNER JOIN (JOIN)
• The INNER JOIN keyword returns rows when there is at least one match in both tables.
Syntax:
SELECT
column name(s) FROM
table_name1
INNER JOIN
table_name2 ON
table_name1.column_name=table_name2.column_name
Tbl_dept Tbl_student
INNER JOIN Example
student_name dept_name
baabtra1 CSE
baabtra5 CSE
baabtra2 ECE
baabtra3 EEE
baabtra4 EEE
SELECT tbl_student.student_name,tbl_dept.dept_nameFROM tbl_deptJOIN tbl_studentON tbl_dept.pk_dept_id = tbl_student.fk_dept_id;
LEFT JOIN• The LEFT JOIN keyword returns all rows from the left table (table_name1),
even if there are no matches in the right table (table_name2).
Syntax:
SELECT
column_name(s) FROM
table_name1 LEFT JOIN
table_name2 ON
table_name1.column_name=table_name2.column_name.
Tbl_dept Tbl_student
LEFT JOIN Example
SELECT tbl_student.student_name,tbl_dept.dept_name
FROM tbl_dept
LEFT JOIN tbl_student
ON tbl_dept.pk_dept_id = tbl_student.fk_dept_id;
student_name dept_name
Baabtra1 CSE
Baabtra5 CSE
Baabtra2 ECE
Baabtra3 EEE
Baabtra4 EEE
NULL CE
RIGHT JOIN
• The RIGHT JOIN keyword returns all the rows from the right table (table_name2), even if there are no matches in the left table (table_name1).
Syntax:
SELECT
column_name(s) FROM
table_name1 RIGHT JOIN
table_name2 ON
table_name1.column_name=table_name2.column_name.
Tbl_dep Tbl_student
RIGHT JOIN Example
SELECT tbl_student.student_name,tbl_dept.dept_name
FROM tbl_dept
RIGHT JOIN tbl_student
ON tbl_dept.pk_dept_id = tbl_student.fk_dept_id;
Student_name Dept_name
Baabtra1 CSE
Baabtra2 ECE
Baabtra3 EEE
Baabtra4 EEE
Baabtra5 CSE
Baabtra6 NULL
FULL JOIN
• There is no FULL JOIN in MySQL.
• We can possible this by using both LEFT and RIGHT Joins together with UNION key word.
Tbl_dep Tbl_student
UNION
• The UNION operator combines two or more SELECT statements.
• The UNION operator is used to combine the result-set of two or more SELECT statements.
• Each SELECT statement within the UNION must have the same number of columns.
• The columns must also have similar data types.
• The columns in each SELECT statement must be in the same order.
UNION Syntax
SELECT column _ name(s)
FROM Table_name1
UNION
SELECT column _ name(s)
FROM table_name2
• The column names in the result-set of a UNION are always equal to the column names in the first SELECT statement in the UNION.
UNION ALL
• The UNION operator selects only distinct values by default. If you need to allow duplicate values, use UNION ALL.
Syntax
SELECT column_name (s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
UNION Example
SELECT tbl_student.student_name,tbl_dept.dept_name
FROM tbl_dept
LEFT JOIN tbl_student
ON tbl_dept.pk_dept_id = tbl_student.fk_dept_id
UNION
SELECT tbl_student.student_name,tbl_dept.dept_name
FROM tbl_dept
RIGHT JOIN tbl_student
ON tbl_dept.pk_dept_id = tbl_student.fk_dept_id;
Student_name Dept_name
Baabtra1 CSE
Baabtra5 CSE
Baabtra2 ECE
Baabtra3 EEE
Baabtra4 EEE
NULL CE
Baabtra6 NULL
UNION ALL Example
SELECT tbl_student.student_name,tbl_dept.dept_name
FROM tbl_dept
LEFT JOIN tbl_student
ON tbl_dept.pk_dept_id=tbl_student.fk_dept_id
UNION ALL
SELECT tbl_student.student_name,tbl_dept.dept_name
FROM tbl_dept
RIGHT JOIN tbl_student
ON tbl_dept.pk_dept_id=tbl_student.fk_dept_id;
Student_name Dept_name
Baabtra1 CSE
baabtra5 CSE
baabtra2 ECE
baabtra3 EEE
baabtra4 EEE
NULL CE
baabtra1 CSE
baabtra2 ECE
baabtra3 EEE
baabtra4 EEE
baabtra5 CSE
baabtra6 NULL
SELECT tbl_dept.dept_name
FROM tbl_dept
UNION
SELECT tbl_student.student_name
FROM tbl_student;
dept_name
CSE
ECE
EEE
CE
Baabtra1
Baabtra2
Baabtra3
Baabtra4
Baabtra5
baabtra6
THANKS
If this presentation helped you, please visit our page facebook.com/baabtra and like it.
Thanks in advance.
www.baabtra.com | www.massbaab.com |www.baabte.com
Contact Us