I have following tables;
users
id
name
departments
id
name
user_departments
id
user_id
name
user_views
id
user_id
views
Above id is primary key in all tables, while user_id and department_id are foreign keys.
I need to make a query for getting users view in department. So I made query like that
SELECT user_views.view FROM user_views JOIN user_departments ON user_views.user_id = user_departments.user_id WHERE user_departments.department_id = 1234;
Above query not using primary tables users and departments at all, So join only on foreign key columns in two relation tables.
Is there performance or other disadvantage for not using primary tables and respective primary key in join ? I am using postgres sql, However I have same question about MySQL too.
UPDATE: Alternative versions I am talking about
SELECT user_views.view FROM users JOIN user_views ON users.id = user_views.user_id JOIN user_departments ON users.id = user_departments.user_id WHERE user_departments.department_id = 1234;
SELECT user_views.view FROM users JOIN user_views ON users.id = user_views.user_id JOIN user_departments ON users.id = user_departments.user_id JOIN departments ON departments.id = user_departments.department_id WHERE departments.id = 1234;