I have three tables I want to iterate over. The tables are pretty big so I will show a small snippet of the tables. First table is Students:
| id | name | address |
|---|---|---|
| 1 | John Smith | New York |
| 2 | Rebeka Jens | Miami |
| 3 | Amira Sarty | Boston |
Second one is TakingCourse. This is the course the students are taking, so student_id is the id of the one in Students.
| id | student_id | course_id |
|---|---|---|
| 20 | 1 | 26 |
| 19 | 2 | 27 |
| 18 | 3 | 28 |
Last table is Courses. The id is the same as the course_id in the previous table. These are the courses the students are following and looks like this:
| id | type |
|---|---|
| 26 | History |
| 27 | Maths |
| 28 | Science |
I want to return a table with the location (address) and the type of courses that are taken there. So the results table should look like this:
| address | type |
|---|
The pairs should be unique, and that is what's going wrong. I tried this:
select S.address, C.type
from Students S, Courses C, TakingCourse TC
where TC.course_id = C.id
and S.id = TC.student_id
And this does work, but the pairs are not all unique. I tried select distinct and it's still the same.