有没有办法简化这个SQL函数?我觉得这是多余的

有没有办法简化这个SQL函数?我觉得这是多余的,sql,Sql,只是不确定我是不是用最好的方法。有没有办法缩短它?它和我想要的东西是一致的,但我正在努力学习,不确定这句话是否多余 从员工s、付款p中选择名字、姓氏、金额,其中s.staff\u id=p.staff\u id和p.staff\u id=“2”我建议这样写: select s.first_name, s.last_name, sum(p.amount) from staff s join payment p on s.staff_id = p.staff_id where

只是不确定我是不是用最好的方法。有没有办法缩短它?它和我想要的东西是一致的,但我正在努力学习,不确定这句话是否多余


从员工s、付款p中选择名字、姓氏、金额,其中s.staff\u id=p.staff\u id和p.staff\u id=“2”

我建议这样写:

select s.first_name, s.last_name, sum(p.amount)
from staff s join
     payment p 
     on s.staff_id = p.staff_id 
where p.staff_id = 2
group by s.first_name, s.last_name;
我看不到任何“冗余”。但我确实看到了改进的空间:

  • 您的查询需要一个
    分组依据
  • 始终使用正确、明确、标准的可读的
JOIN语法
  • 切勿在
    FROM
    子句中使用逗号
  • 不要逃避数字。大概,
    staff\u id
    是一个数字,所以只需与
    2
    进行比较,而不是
    “2”
  • 限定所有列引用,以便清楚它们来自哪个表
  • 如果两名员工的姓名相同,则
    分组依据
    可能应包括
    员工id

  • 在我看来非常简单。这感觉是多余的吗?如果有什么问题的话,那就是过于简化了