You are going to learn SQL JOIN 4 tables with a simple example. If you need to join four tables in SQL, you are reading the right tutorial that will be very useful for your project.
Join 4 Tables in SQL
You can join 4 tables in SQL using any one of the following keywords. It depends on your project requirement. Don’t worry, Here we will learn to use all these keywords for joining four tables –
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN
Learn more –
The Important Points
To join 4 tables, You should keep mind the following points –
- All the 4 tables must be stabilized a relationship with a foreign key.
- Each table must contain a common column.
- The common column may have matching values.
- A common may have the same or different datatype & name.
- All 4 tables may have the same or the different numbers of rows or columns.
The Example –
you can understand SQL join query for 4 tables with this example. So, Let’s discuss it with the four tables like courses
, subjects
, chapters
, subchapters
. Each table is related to each other with the Foreign keys.
Now, See the structure of the following tables.
Table Name – courses
course_id | course_name |
5011 | Web Designing |
5012 | Web Development |
5013 | Programming |
Table Name – subjects
This table will be joined to courses
table based on a common column course_id
.
subject_id | subject_name | course_name |
221 | HTML | 5011 |
222 | CSS | 5011 |
223 | JavaScript | 5011 |
224 | PHP | 5012 |
225 | Python | 5012 |
226 | .Net | 5012 |
227 | Java | 5013 |
228 | C++ | 5013 |
Table Name – chapters
This table will be joined to subjects
table based on a common column subject_id
.
chapter_id | chapter_name | subject_id |
101 | HTML Text | 221 |
102 | HTML Image | 221 |
103 | HTML List | 221 |
104 | HTML Link | 221 |
105 | HTML Form | 221 |
106 | CSS Border | 222 |
107 | CSS Position | 222 |
108 | CSS Selector | 222 |
109 | PHP conditions | 224 |
110 | PHP arrays | 224 |
111 | Java Methods | 227 |
Table Name – subchapters
This table will be joined to chapters
table based on a common column chapter_id
.
subchapter_id | subchapter_name | chapter_id |
1201 | HTML Paragraph | 101 |
1202 | HTML Heading | 101 |
1203 | HTML Ordered List | 103 |
1204 | HTML Unordered List | 103 |
1205 | HTML Text Link | 104 |
1206 | HTML Image Link | 104 |
1207 | CSS Border style | 106 |
1208 | CSS Border Width | 106 |
1209 | CSS Border Color | 106 |
1210 | CSS Absolute Position | 107 |
1211 | CSS Element Selector | 108 |
1212 | PHP if Condition | 109 |
1213 | PHP Switch Condition | 109 |
1214 | PHP Index Array | 110 |
1215 | PHP Associative Array | 110 |
1216 | Java Method Parameter | 111 |
1217 | Java Method Overloading | 111 |
1218 | SQL INNER JOIN | 224 |
INNER JOIN 4 Tables
If you need to join 4 tables using INNER JOIN, you will get the result in a new table with only matching values in all tables.
Syntax –
SELECT table1.column1_name, table1.column2_name,..., table2.column1_name, table2.column2_name,..., table3.column1_name, table3.column2_name,..., table4.column1_name, table4.column2_name,..., FROM table1 INNER JOIN table2 ON table1.table1_id = table2.table1_id INNER JOIN table3 ON table2.table2_id = table3.table2_id; INNER JOIN table4 ON table3.table3_id = table4.table3_id;
Query –
SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses INNER JOIN subjects ON courses.course_id = subjects.course_id INNER JOIN chapters ON subjects.subject_id = chapters.subject_id INNER JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id;
Output –
course_name | subject_name | chapter_name | subchapter_name |
Web Designing | HTML | HTML Text | HTML Heading |
Web Designing | HTML | HTML Text | HTML Paragraph |
Web Designing | HTML | HTML List | HTML Ordered List |
Web Designing | HTML | HTML List | HTML Unordered List |
Web Designing | HTML | HTML Link | HTML Image Link |
Web Designing | HTML | HTML Link | HTML Text Link |
Web Designing | CSS | CSS Border | CSS Border Color |
Web Designing | CSS | CSS Border | CSS Border Style |
Web Designing | CSS | CSS Border | CSS Border Width |
Web Designing | CSS | CSS Position | CSS Absolute Position |
Web Designing | CSS | CSS Selector | CSS Element Selector |
Web Development | PHP | PHP Conditions | PHP Switch Condition |
Web Development | PHP | PHP Conditions | PHP if Condition |
Web Development | PHP | PHP Arrays | PHP Associative array |
Web Development | PHP | PHP Arrays | PHP Index Array |
Programming | Java | Java Methods | ava Method Overloading |
Programming | Java | Java Methods | ava Method Parameter |
LEFT JOIN 4 Tables
If you need to join 4 tables using LEFT JOIN, you will get the result in a new table with matching values in all left tables.
Syntax –
SELECT table1.column1_name, table1.column2_name,..., table2.column1_name, table2.column2_name,..., table3.column1_name, table3.column2_name,..., table4.column1_name, table4.column2_name,..., FROM table1 LEFT JOIN table2 ON table1.table1_id = table2.table1_id LEFT JOIN table3 ON table2.table2_id = table3.table2_id; LEFT JOIN table4 ON table3.table3_id = table4.table3_id;
Query –
SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses LEFT JOIN subjects ON courses.course_id = subjects.course_id LEFT JOIN chapters ON subjects.subject_id = chapters.subject_id LEFT JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id;
RIGHT JOIN 4 Tables
If you need to join 4 tables using INNER JOIN, you will get the result in a new table with matching values in all right tables.
Syntax –
SELECT table1.column1_name, table1.column2_name,..., table2.column1_name, table2.column2_name,..., table3.column1_name, table3.column2_name,..., table4.column1_name, table4.column2_name,..., FROM table1 RIGHT JOIN table2 ON table1.table1_id = table2.table1_id RIGHT JOIN table3 ON table2.table2_id = table3.table2_id; RIGHT JOIN table4 ON table3.table3_id = table4.table3_id;
Query –
SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses RIGHT JOIN subjects ON courses.course_id = subjects.course_id RIGHT JOIN chapters ON subjects.subject_id = chapters.subject_id RIGHT JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id;
FULL JOIN 4 Tables
If you need to join 4 tables using FULL JOIN, you will get the result in a new table with or without matching values in all tables.
Syntax –
SELECT table1.column1_name, table1.column2_name,..., table2.column1_name, table2.column2_name,..., table3.column1_name, table3.column2_name,..., table4.column1_name, table4.column2_name,..., FROM table1 FULL JOIN table2 ON table1.table1_id = table2.table1_id FULL JOIN table3 ON table2.table2_id = table3.table2_id; FULL JOIN table4 ON table3.table3_id = table4.table3_id;
Query –
SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses FULL JOIN subjects ON courses.course_id = subjects.course_id FULL JOIN chapters ON subjects.subject_id = chapters.subject_id FULL JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id;
Join 4 Tables with Conditions
Now, you will learn to join 4 tables with different conditions using the INNER JOIN keyword. after learning it, you will be able to use LEFT JOIN, RIGHT JOIN & FULL JOIN keywords.
Join 4 Tables with WHERE Clause
If you want to join all four tables and select those records that have subject_name
values are ‘HTML’ then you can use where clause.
SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses INNER JOIN subjects ON courses.course_id = subjects.course_id INNER JOIN chapters ON subjects.subject_id = chapters.subject_id INNER JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id WHERE subjects.subject_name='HTML';
Join 4 Tables with ORDER BY Clause
If you want to join all four tables and select records based on course_name
in alphabetical order then you use the ORDER BY clause.
SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses INNER JOIN subjects ON courses.course_id = subjects.course_id INNER JOIN chapters ON subjects.subject_id = chapters.subject_id INNER JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id ORDER BY courses.course_name DESC;
Join 4 Tables with GROUP BY clause
If you want to join all four tables and count all records by grouping course_name
then you can use the GROUP BY clause
Query –
SELECT courses.course_name, COUNT(*) FROM courses INNER JOIN subjects ON courses.course_id = subjects.course_id INNER JOIN chapters ON subjects.subject_id = chapters.subject_id INNER JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id GROUP BY courses.course_name;
How to Join 4 Tables in SQL
To join 4 tables, you have to configure the following steps –
- First, make sure that the SQL package is installed on your computer
- Create and use a MySQL Database
- Create 4 tables in MySQL database
- Insert some records in all 4 tables
- Join all three 4 tables using INNER JOIN
Query –
mysql>CREATE DATABASE join_db; mysql>USE DATABASE join_db; mysql>CREATE TABLE courses ( course_id int(10), course_name varchar(255) ); mysql>INSERT INTO courses (course_id, course_name) VALUES (511, 'Web Designing'), (512, 'Web Development'), (513, 'Programming'); mysql>CREATE TABLE subjects ( subject_id int(10), subject_name varchar(255), course_id int(10) ); mysql>INSERT INTO subjects (subject_id, subject_name, course_id) VALUES (221, 'HTML', 511), (222, 'CSS', 511), (223, 'Javascript', 511), (224, 'PHP', 512), (225, 'Python', 512), (226, '.Net', 512), (227, 'Java', 513), (228, 'C++', 513); mysql>CREATE TABLE chapters ( chapter_id int(10), chapter_name varchar(255), subject_id int(10) ); mysql>INSERT INTO chapters (chapter_id, chapter_name, subject_id) VALUES (101, 'HTML Text', 221), (102, 'HTML Image', 221), (103, 'HTML List', 221), (104, 'HTML Link', 221), (105, 'HTML Form', 221), (106, 'CSS Border',222), (107, 'CSS Position',222), (108, 'CSS Selector', 222), (109, 'PHP Conditions',224), (110, 'PHP Arrays', 224), (111, 'Java Methods', 227); mysql>CREATE TABLE subchapters ( subchapter_id int(10), subchapter_name varchar(255), chapter_id int(10) ); mysql>INSERT INTO subchapters (subchapter_id, subchapter_name, chapter_id) VALUES (1201, 'HTML Paragraph', 101), (1202, 'HTML Heading', 101), (1203, 'HTML Ordered List', 103), (1204, 'HTML Unordered List', 103), (1205, 'HTML Text Link', 104), (1206, 'HTML Image Link',104), (1207, 'CSS Border Style',106), (1208, 'CSS Border Width', 106), (1209, 'CSS Border Color', 106), (1210, 'CSS Absolute Position', 107), (1211, 'CSS Element Selector', 108), (1212, 'PHP if Condition', 109), (1213, 'PHP Switch COndition', 109), (1214, 'PHP Index Array', 110), (1215, 'PHP Associative Array', 110), (1216, 'Java Method Parameter', 111), (1217, 'Java Method Overloading', 111), (1218, 'SQL INNER JOIN', 224); mysql>SELECT courses.course_name, subjects.subject_name, chapters.chapter_name, subchapters.subchapter_name FROM courses INNER JOIN subjects ON courses.course_id = subjects.course_id INNER JOIN chapters ON subjects.subject_id = chapters.subject_id INNER JOIN subchapters ON chapters.chapter_id = subchapters.chapter_id;
Tutorial Summary
Dear Developer, I have this tutorial with complete information. I hope that You have learned to join four tables using SQL. Now you can join any type of table.
If you have any questions, Kindly ask me through the comment box. Even, you should share this tutorial with your friends.