✏️ Explanatory Question
|
SubjectId |
SubjectName |
|
1 |
C Language |
|
2 |
Java Language |
|
ChapterId |
ChapterName |
SubjectId |
|
1 |
Introduction C |
1 |
|
2 |
Operator Java |
2 |
|
3 |
Operator python |
3 |
|
4 |
Operator R |
3 |
For both of the cases Result will be like this
|
SubjectId |
SubjectName |
ChapterId |
ChapterName |
|
1 |
C Language |
1 |
Introduction C |
|
2 |
Java Language |
2 |
Operator Java |
SELECT s.SubjectId as SubjectId, s.SubjectName as SubjectName,
c.ChapterId as ChapterId, c.ChapterName as ChapterName
FROM Subjects as s
LEFT JOIN Chapters as c
ON s.SubjectId = c.SubjectId
We can say this is as mirror effect.
SELECT s.SubjectId as SubjectId, s.SubjectName as SubjectName,
c.ChapterId as ChapterId, c.ChapterName as ChapterName
FROM Chapters as c
RIGHT JOIN Subjects as s
ON s.SubjectId = c.SubjectId
SELECT s.SubjectId as SubjectId, s.SubjectName as SubjectName,
c.ChapterId as ChapterId, c.ChapterName as ChapterName
FROM Subjects as s
RIGHT JOIN Chapters as c
ON s.SubjectId = c.SubjectId
And the above code will give the below output for only exact right join.
|
SubjectId |
SubjectName |
ChapterId |
ChapterName |
|
1 |
C Language |
1 |
Introduction C |
|
2 |
Java Language |
2 |
Operator Java |
|
NULL |
NULL |
3 |
Operator python |
|
NULL |
NULL |
4 |
Operator R |
If you don't have the above tables create those table from the below code and let's practice.
USE SQLExamples
DROP TABLE Subjects
DROP TABLE Chapters
CREATE TABLE Subjects(
SubjectId INT,
SubjectName VARCHAR(30)
)
SELECT * FROM Subjects
CREATE TABLE Chapters(
ChapterId INT,
ChapterName VARCHAR(30),
SubjectId int,
)