mysql – SQL连接和项目总和
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – SQL连接和项目总和,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1103字,纯文字阅读大概需要2分钟。
内容图文
![mysql – SQL连接和项目总和](/upload/InfoBanner/zyjiaocheng/909/7d00a243bcc7461a927783bd507a8ccb.jpg)
有两张桌子
用户
+--+----+
|id|name|
+--+----+
1 A
2 B
命令
+--+--------+-------+-------+
|id|subtotal|created|user_id|
+--+--------+-------+-------+
1 10 1000001 1
2 20 1000002 1
3 10 1000003 2
4 10 1000005 1
我们的想法是从用户那里获得AVG,SUM和最后创建的订单.
SELECT
users.name,
users.phone,
SUM(a.subtotal),
COALESCE(a.created, NULL)
FROM users
LEFT JOIN
(
SELECT
orders.id,
orders.subtotal,
orders.user_id,
orders.created
FROM
orders
JOIN(
SELECT MAX(i.created) created, i.user_id
FROM orders i
GROUP BY i.user_id
)AS j ON(j.user_id = orders.user_id AND orders.created = j.created) GROUP BY orders.user_id
) AS a ON users.id = a.user_id
GROUP BY users.id
例如,SQL请求应该返回:
+--+----+---+--------+
|id|name|sum|date |
+--+----+---+--------+
1 A 40 1000005
2 B 10 1000003
但上面的SQL无法计算总和.我错过了什么?
解决方法:
您的查询似乎太复杂了.这个怎么样?
SELECT u.id, u.name, SUM(o.subtotal), MAX(o.created)
FROM users u LEFT JOIN
orders o
ON u.id = o.user_id
GROUP BY u.id, u.name;
在MySQL中,避免FROM子句中不必要的子查询尤为重要.这些实际上已实现,并且可能妨碍使用索引来提高性能.
内容总结
以上是互联网集市为您收集整理的mysql – SQL连接和项目总和全部内容,希望文章能够帮你解决mysql – SQL连接和项目总和所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。