Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基本SQL SUMMES、Selects、WHERE、GROUP BY语句_Mysql_Join - Fatal编程技术网

Mysql 基本SQL SUMMES、Selects、WHERE、GROUP BY语句

Mysql 基本SQL SUMMES、Selects、WHERE、GROUP BY语句,mysql,join,Mysql,Join,我目前正在处理这些数据 结果应该是什么: 应该产生的是图片底部的结果 相反,我得到的结果是: 我的代码如下: SELECT distinct(username) as 'Name', p.price as 'Price', p.quantity as 'Quantity', (p.price * p.quantity) as 'Total' FROM users u, purchase p WHERE u.userID = p.userID ORDER BY (username) asc

我目前正在处理这些数据

结果应该是什么:

应该产生的是图片底部的结果

相反,我得到的结果是:

我的代码如下:

SELECT distinct(username) as 'Name', p.price as 'Price', p.quantity as 'Quantity', (p.price * p.quantity) as 'Total'
 FROM users u, purchase p
WHERE u.userID = p.userID 
ORDER BY (username) asc  ; 

我想知道我该如何将唯一的用户名相加(Alice的4和1.5生成5.5),以及如何让Matt的名字显示在数据上

只是小改动,但重要的是按用户分组,而不是按用户排序

SELECT username as 'Name', SUM(p.price * p.quantity) as 'Total'
 FROM users u, purchase p
WHERE u.userID = p.userID 
GROUP BY username; 
选择u.name,sum(数量*价格)作为[User]u左键加入采购p on u.id=p.userId的总计
group by u.name

为什么jquery被标记?
distinct
不是一个函数,它限定了选择
selectdistinct
会影响整行,而不仅仅是括号内的列(顺便说一下,括号内的列会被忽略)。请参阅,谢谢。问题只是简单地混淆了排序方式和分组方式。但是,当我运行查询时,它根本不显示Matt的总数。我还想在上面显示他的总数。我想这是由于将每个表中的用户ID设置为彼此相等造成的。然后您需要将用户u LEFT JOIN purchase p的from行更改为
,我以前确实尝试过。但是,WHERE子句存在语法错误。17:07:47选择不同的用户名作为“名称”,总和(p.price*p.quantity)作为来自(用户u)左连接(购买p)的“总计”,其中u.userID=p.userID按用户名分组错误代码:1064。您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第30.000行“WHERE u.userID=p.userID GROUP BY username”附近使用的正确语法。我认为这是因为您在从句中的表名中添加了括号。我最近才开始学习SQL,你们都帮了我很大的忙。这解决了我的问题。谢谢你的意见。