Join Queries

!! Inner Join

!!! Theta Join

(:source lang=sql:)[@ SELECT * FROM student INNER JOIN class ON student.class_id = class.class_id; @]

which is equivalent to

(:source lang=sql:)[@ SELECT * FROM student, class WHERE student.class_id = class.class_id; @]

!!! Equi Join

(:source lang=sql:)[@ SELECT * FROM student INNER JOIN class USING (class_id); @]

!!! Natural Join

(:source lang=sql:)[@ SELECT * FROM student NATURAL JOIN class; @]

!! Cross Join

An explicit cross join is performed using

(:source lang=sql:)[@ SELECT * FROM student CROSS JOIN grade; @]

while an implicit cross join can be performed using

(:source lang=sql:)[@ SELECT * FROM student, grade; @]

!! Outer Joins

!!! Left Outer Join

(:source lang=sql:)[@ SELECT * FROM assignment LEFT OUTER JOIN grade ON assignment.asgm_id = grade.asgm_id; @]

!!! Right Outer Join

(:source lang=sql:)[@ SELECT * FROM assignment RIGHT OUTER JOIN grade ON assignment.asgm_id = grade.asgm_id; @]

!!! Full Outer Join

(:source lang=sql:)[@ SELECT * FROM assignment FULL OUTER JOIN grade ON assignment.asgm_id = grade.asgm_id; @]

  July 4, 2026 at 06:35 AM