gpt4 book ai didi

mysql - 来自其他查询的 SQL 排序结果

转载 作者:行者123 更新时间:2023-11-29 02:21:15 25 4
gpt4 key购买 nike

我有两个表:

`users`
`id` INT(11)
`name` VARCHAR(30)

`items`
`id` INT(11)
`name` VARCHAR(30)
`owner` VARCHAR(30)

这是我的问题:我正在尝试根据 items 表中的唯一项的数量对 users 表进行排序。

获取唯一数量的项目:

SELECT * FROM `items` WHERE `owner`='".$ownername."' GROUP BY `name`

运行此查询会得到某些 $ownername 的唯一项目数。

我想做的是根据 items 表中唯一项目的数量对 users 表进行排序,但我不确定如何我会那样做。

最佳答案

您可以按计数加入、分组和排序:

SELECT u.name
FROM users u
JOIN items i
WHERE u.owner='".$ownername."'
GROUP BY u.name
ORDER BY COUNT(i.id) DESC

或者您可以根据计算每个用户的项目的子选择的结果进行排序:

SELECT u.name
FROM users u
WHERE u.owner='".$ownername."'
ORDER BY
(SELECT COUNT(*) FROM items i WHERE i.owner = u.name) DESC

如果你也想显示值,你也可以稍微不同地编写后者:

SELECT u.name,
(SELECT COUNT(*) FROM items i WHERE i.owner = u.name) as item_count
FROM users u
WHERE u.owner='".$ownername."'
ORDER BY
item_count DESC

关于mysql - 来自其他查询的 SQL 排序结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com