How can i create a query to show all participants in an Activity, be they teachers or students ?
You need to revise your relationship diagram.
First thought: For a relationship with StudentID you need several instances of the Students table for President, VicePresident, Secretary, PRO, Treasurer and actually also for Members. So you have to insert the Students table into the diagram six times, for example. Something will be visible like Students_1, Students_2 etc.
Now you can assign StudentID as the associated primary key from Students to each of the foreign keys mentioned.
This also puts you in a position to subsequently create the desired query on the same basis.
Second thought: The whole thing mutates against the madness. Actually you need a many to many relationship between Activities and Students. Because a student can be the president of one activity and a simple member of another, at least theoretically.
An additional Roles table is linked to the associated link table, which uses the foreign key to indicate which role the student has in an activity. On top of everything, there is a time stamp for validity, because people come and go, change their jobs, etc.
Something similar must then take place on the teacher side. Actually, you could now combine the Teachers and Students tables, as their properties are almost the same. You can also add a feature to differentiate teacher/student.
Last but not least, ActivityName would have to be moved into its own table and inserted into the link table using a foreign key.
So I've obviously moved closer to
@plog's suggestion.
I've described this to some extent because I don't have a database with your tables and I don't have a servant who can recreate them for me from the pictures above.