MySQL问题求助呀各位大神!!!

有三张表:Students表,Friends表和Salary表,请问如何找出朋友工资比自己高的人?

图片说明

创建三张表的代码如下:

create table Students(
ID int NOT NULL ,
s_name char(10) NOT NULL ,
primary key(ID)
)ENGINE=InnoDB;
create table Friends(
ID int NOT NULL ,
Friend_ID int NOT NULL ,
primary key(ID)
)ENGINE=InnoDB;
create table Salary(
ID int NOT NULL ,
Salaries int NOT NULL ,
primary key(ID)
)ENGINE=InnoDB;

insert into Students(ID,
s_name)
values(1,'甲'),
(2,'乙'),
(3,'丙'),
(4,'丁');
insert into Friends(ID,
Friend_ID)
values(1,2),
(2,3),
(3,4),
(4,1);
insert into Salary(ID,
Salaries)
values(1,2000),
(2,1000),
(3,5000),
(4,500);

SELECT s.ID,sa.Salaries,f.ID,sa2.Salaries
FROM students s
LEFT JOIN Friends f ON s.id = f.Friend_ID
LEFT JOIN Salaries sa on sa.id = s.id
LEFT JOIN Salaries sa2 on f.id = sa2.id
WHERE sa2.Salaries < sa.Salaries

你试一下看看是不是要的结果

没法查,你不能知道students的工资是多少,你也不能知道朋友的工资是多少,没法比较。

你写的东西和你的图片看不出一点关联关系

根据大佬的回答修改了一下 以下是实现法之一:

-- 实现法1:
SELECT s.id,s.s_name,sa.salaries as s_salary,f.Friend_ID,
       sa2.salaries as f_salary
from students as s,friends as f,salary as sa,salary as sa2
where s.id=sa.id
and f.friend_id=sa2.id
and s.id = f.id
and sa.salaries < sa2.salaries;
-- 实现法2:
SELECT s.id,s.s_name,sa.salaries as s_salary,f.Friend_ID,
       sa2.salaries as f_salary
from students as s 
inner join salary as sa on s.id=sa.id
inner join friends as f on s.id=f.id
inner join salary as sa2 on f.friend_id=sa2.id
where sa.salaries < sa2.salaries;