选择mysql中的前5名卖家

Posted

技术标签:

【中文标题】选择mysql中的前5名卖家【英文标题】:select top 5 sellers in mysql 【发布时间】:2018-07-06 23:01:58 【问题描述】:

我在 mysql 中有下表

表格“销售”

id, product, code, quantity, amount, who-sold-it

虽然“who-sold-it”字段只是理解问题的示例,而不是该字段的真实名称

现在我有另一个名为“USERS”的表,它看起来像这样

id, name, sellercode

我需要使用 2 个表格查找前 5 名卖家,查看每个 SALE 中的销售者,并显示他们的姓名和销售金额

【问题讨论】:

你需要加入两个表。见:w3schools.com/sql/sql_join.asp 提供表结构、示例数据和例外输出。现在我投票这个问题不清楚澄清你的具体问题或添加额外的细节来突出你需要什么。正如目前所写的那样,很难准确地说出你在问什么。请参阅***.com/help/how-to-ask 页面以获得澄清此问题的帮助。 雷蒙德,问题很清楚,问题是你,也许你是一个新的 MOD 试图使用一些力量或一个 MOD 崇拜者,但是如果你读了这个问题你会得到场景 只有当“who-sold-it”字段与“USERS”表中的“id”字段或“sellercode”字段相关时,您的问题才有意义。是哪一个? 【参考方案1】:

按总销售额排序结果并使用limit 获得前 5 名。也可以将sales表和seller表连接起来,得到卖家的名字。

select users.name, users.sellercode, sum(sales.amount) as total
from sales, users
where sales.sellercode = users.sellercode
group by users.sellercode, users.name
order by total desc
limit 5

显示结果:

<?php while ($row = mysqli_fetch_assoc($result)) ?>
    <tr>
        <td><?php echo htmlspecialchars($row['name'])</td>
        <td><?php echo htmlspecialchars($row['total'])</td>
    </tr>
<?php  ?>

【讨论】:

会试一试,知道如何显示它吗? 是的,遍历结果并为每个项目打印一个表格行。 我编辑了问题并给两个表格都起了一个名字,因为我对这么多“卖家”字眼感到困惑,但它什么也没有显示 htmlspecialchars 应该始终使用三个参数,尤其是编码参数。php 的默认字符集可能与默认字符集或使用的 mysql 字符集不同,从而使函数的安全性降低,并且仍然可能被注入跨站点脚本攻击向量。 使用显式 INNER JOIN ... ON ... 语法而不是古老的隐式语法,可以帮助使查询更具可读性和可理解性。

以上是关于选择mysql中的前5名卖家的主要内容,如果未能解决你的问题,请参考以下文章

在查询 SQL 中查询

按维度表计算的前 N ​​个

mySQL 返回每个类别的前 5 名

选择“高”列中的前 5 个最大记录,并从同一查询中的“低”列和按股票名称分区的同一个表中选择 5 个最小记录

如何使用 Angular JS 排序和选择 json 数组中的前 5 个元素

MySql 选择每个国家的前 3 个结果