我试图打印2002年薪水超过500,000 $的球员
超过30次全垒打。我必须从两个表中提取数据,但我无法正常工作并给我一个错误。我似乎无法弄清楚错误,以及为什么它没有给我我需要的输出。

SELECT batter.playerID, HR, salary_table.salary, salary_table.yearID

FROM batter, salary_table

JOIN salary_table ON salary_table.playerID = batter.playerID
JOIN salary_table ON salary_table.yearID = batter.yearID

WHERE salary_table.yearID = 2002
AND salary_table.salary > 500000
AND HR > 30
GROUP BY batter.playerID, HR, salary_table.salary, salary_table.yearID;


我得到的错误是= AILED:SemanticException [错误10008]:行5:5不明确的表别名'salary_table'

最佳答案

您无需多次加入salary_table

SELECT b.playerID, b.hr, s.salary, s.yearID
FROM batter AS b
JOIN salary_table AS s ON b.playerID = s.playerID AND b.yearID = s.yearID
WHERE s.yearID = 2002
AND s.salary > 500000
AND b.hr > 30


您也不需要GROUP BY,因为您无需汇总表中的任何内容。

关于mysql - 似乎无法理解为什么SQL Query无法给我正确的响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47914876/

10-12 05:11