mysql - 如何计算行数并仍然显示所有行? mysql

标签 mysql

你好,我正在尝试计算每个员工工资的行数。

我有两张 table 供前任使用。

餐 table 员工

id_____________name

1..............sam

2..............greg

3..............vic

4..............steve

工资表

id____________salary

1.............10000

1.............15000

2.............30000

3.............13000

4.............90000

4.............20000

我需要的结果是

id| name | salary| count

1 | sam  | 10000 | 2

1 | sam  | 15000 | 2

2 | greg | 30000 | 1

3 | vic  | 13000 | 1

4 |steve | 90000 | 2

4 |steve | 90000 | 2

总结一下:我有 4 名员工,他们的工资都是过去的。我正在尝试创建一个查询,显示工资列表以及该员工有多少工资。

这是我尝试过的,但我得到了 6 数...

create temporary table rates
SELECT e.id, e.name, s.salary, count(*) as count
FROM employee e
INNER JOIN salary s ON e.id = s.id
GROUP BY name, s.salary
ORDER BY name;

create temporary table sum
select r.id, sum(count) as sum
from rates r;

select * from rates
LEFT OUTER JOIN sum s ON r.id = s.id;

我尝试过自加入,但没有成功。

提前致谢!

最佳答案

您将需要在工资表和员工表之间执行内部联接

您还希望包含嵌套的 SELECT 语句。

SELECT e.id, e.name, s.salary, 
(SELECT COUNT(*) FROM salary s
       WHERE employee_id = id) as COUNT
FROM employees e
INNER JOIN salary s ON employees.id = salary.id

这是一个 fiddle

http://sqlfiddle.com/#!9/b94ec/9/0

关于mysql - 如何计算行数并仍然显示所有行? mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820488/

相关文章:

mysql - 'created' 的默认值无效,但对 DATETIME 使用 CURRENT_TIMESTAMP

MySQL Connection Close 不是关闭连接.NET

c# - 使用C#备份MySQL数据库

MySQL - 夏令时

php move_uploaded_file() 图片权限问题

php - 从 mysql 查询填充选择下拉列表时出现重复值

mysql - SQL:所有的分隔符是什么?

php - Jquery显示来自mysql的文本

php - fatal error : Call to a member function escape() on a non-object in

php - 如何防止 PHP 中的 SQL 注入(inject)?