跨三个表的SQL查询

时间:2013-05-07 11:32:35

标签: sql join

我试图查询三个表并找到某个结果。

目录 String playerid,String college,int year

playersSchools String playerid,String schoolID

薪金 String playerid,int salary,int year

我正在尝试加入这些表格,以找出哪些大学生产收入最高的玩家。目录给出了学校的ID,而球员学校给出了学院的名称和球员毕业年份。这就是我现在所做的不起作用,我仍然是SQL的新手,并试图变得更好。

SELECT a.salary, b.college, c.playerid, d.graduatingyear 
FROM
salaries as a
inner join directory as b on a.playerid=b.playerid
inner join playersschools as c on b.playerid=c.playerid
where 
a.salary > 500000
sort by
a.salary

谢谢!

我的表中的一些示例数据:

目录

  • String Playerid:“ahron01”,“tomv19”,“samh25”
  • String College:“wvu”,“psu”,“su”
  • int year:1956,1978,1990

playersSchools

  • String Playerid:“ahron01”,“tomv19”,“samh25”
  • String SchoolID:“wvu”,“psu”,“su”
  • int graduatingyear:1995,2000,2002

薪金

  • String Playerid:“ahron01”,“tomv19”,“samh25”
  • int salary:“500000”,“4580000”,“1000000”
  • int year:1956,1986,2000

所以我想得到的结果是一个有序的列表,如:

球员,大学,工资,毕业年 “ahron01”,wvu,$ 500,000,1956

然后我会按最高薪和大学排序。我试图看看哪些大学生产收入最高的球员,并打印他们的毕业年份。

谢谢!

1 个答案:

答案 0 :(得分:1)

通过此查询,您将获得第一位获得最高薪水的玩家

你可以添加更多过滤条件的条件......

SELECT top 1 a.salary, b.college, c.playerid 
FROM
salaries as a
inner join directory as b on a.playerid=b.playerid
inner join playersschools as c on b.playerid=c.playerid

sort by
a.salary desc