发现工资和室友一样

Hem*_*ada 1 sql

我有三个表:StudentRoommateSalary

各列如下:

学生

student_id (Primary Key) | smallint
student_name             | varchar(30)
Run Code Online (Sandbox Code Playgroud)

室友

student_id (Primary Key) | smallint
roommate_id              | smallint
Run Code Online (Sandbox Code Playgroud)

薪水

student_id (Primary Key) | smallint
salary                   | float(10,2)
Run Code Online (Sandbox Code Playgroud)

现在我需要打印学生和室友的名字。好吧,我能够找到薪水相同的人。但我无法确定他们是否是室友。这个怎么做?

小智 5

以下是对 Mysql 有帮助的查询

> SELECT st.student_name        
  FROM student st        
  JOIN roommate rm ON (rm.student_id = st.student_id)        
  JOIN salary st_salary ON (st.student_id = st_salary.student_id)        
  JOIN salary rm_salary ON (rm.roommate_id = rm_salary.student_id)      
  WHERE st_salary.salary = rm_salary.salary;
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助