select distinct INSTRUCTORS.name
from COURSES, GRADES, INSTRUCTORS where COURSES.cr = 4
and COURSES.cno = GRADES.cno
and GRADES.empno = INSTRUCTORS.empno;
The steps that we applied in relational algebra can be easily reconstituted in SQL. The first step that consists of computing the product
T1 = COURSES × GRADES × INSTRUCTORS
corresponds to the list of tables that follows the word from. Then, the selection specified by
T2 = (T1 where COURSES.cr = 4 and
COURSES.cno = GRADES.cno and
GRADES.empno = INSTRUCTORS.empno) is executed using the condition of the where clause.
Finally, the projection
T3(name) = T2[INSTRUCTORS.name]
corresponds to the list that follows select. In this case, this list consists of one attribute, INSTRUCTORS.name.
We give one more example that shows a typical query that uses a join.