sql - 有没有办法简化这个 SQL 函数?我觉得它是多余的
问题描述
只是不确定我是否以最好的方式做到这一点。有没有办法缩短它?它适用于我正在寻找的东西,但我试图学习并且不确定这个陈述是否是多余的?
select first_name, last_name, SUM(amount) from staff s, payment p where s.staff_id = p.staff_id and p.staff_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;
我没有看到任何“冗余”。但我确实看到了改进的空间:
- 您的查询需要一个
GROUP BY
. - 始终使用正确、明确、标准的可读
JOIN
语法。 - 切勿在
FROM
子句中使用逗号。 - 不要转义数字。大概,
staff_id
是一个数字,所以只需比较2
not"2"
。 - 限定所有列引用,以便清楚它们来自哪个表。
GROUP BY
可能应该包括staff_id
,以防两个工作人员有相同的名字。
推荐阅读
- firebase - 如何使用 Firestore 查询我关注的用户最近提交的内容?
- jenkins - 如何在詹金斯控制台的一个步骤中输出动态更新的变量。我为工作传递的配置文件(环境文件)
- javascript - 如何创建数量可变的 Stripe 订阅?
- r - 如何在 ggplot2 图中修改和添加额外的图例
- android - 不应该将 .class.getSimpleName() 用于标签吗?
- css - 当父级具有相对定位时,悬停菜单的最大宽度被忽略
- ssl-certificate - 无法使用新的 puppet master 生成新的 puppet 证书
- php - $_SESSION 消息在 header() 发送后被取消设置
- windows - 如何在 Jupyter 笔记本中包含 Julia 文件?
- python-3.x - 在变量中调用多个字符串