Mysql sql选择用户最多的产品
用户: 项目:Mysql sql选择用户最多的产品,mysql,sql,Mysql,Sql,用户: 项目: uid int(11) - userid(primary key, auto_increment) name varchar(255) pass varchar(64) created int(11) 用户和项目: pid int(11) ..... name varchar(150) description varchar(255) created int(11) 我如何选择分配了最多苏联人的项目 sql查询。您可以使用如下内容: uid int(11) - user id
uid int(11) - userid(primary key, auto_increment)
name varchar(255)
pass varchar(64)
created int(11)
用户和项目:
pid int(11) .....
name varchar(150)
description varchar(255)
created int(11)
我如何选择分配了最多苏联人的项目
sql查询。您可以使用如下内容:
uid int(11) - user id
pid int(11) - product id
看
这将返回所有项目的列表以及每个项目的总用户数。如果您希望返回的项目将使用最多的用户,那么您将包括注释掉的limit 1
如果您有多个具有相同用户数的项目
,则您可能希望使用类似的方法:
select p.pid,
p.name,
up.TotalUsers
from projects p
inner join
(
select pid, count(uid) TotalUsers
from users_projects
group by pid
) up
on p.pid = up.pid
order by TotalUsers Desc
-- limit 1
看
谢谢你的小提琴你可以用这样的东西:
uid int(11) - user id
pid int(11) - product id
看
这将返回所有项目的列表以及每个项目的总用户数。如果您希望返回的项目将使用最多的用户,那么您将包括注释掉的limit 1
如果您有多个具有相同用户数的项目
,则您可能希望使用类似的方法:
select p.pid,
p.name,
up.TotalUsers
from projects p
inner join
(
select pid, count(uid) TotalUsers
from users_projects
group by pid
) up
on p.pid = up.pid
order by TotalUsers Desc
-- limit 1
看
感谢您的帮助下面的查询将包括多个具有相同用户数的项目,并且恰好是用户数最多的项目
select p.pid,
p.name,
up.TotalUsers
from projects p
inner join
(
select pid, count(uid) TotalUsers
from users_projects
group by pid
) up
on p.pid = up.pid
where totalusers = (select count(*) Total
from users_projects
group by pid
order by total desc
limit 1)
select p.pid,
p.name,
up.TotalUsers
from projects p
inner join
(
select pid, count(uid) TotalUsers
from users_projects
group by pid
) up
on p.pid = up.pid
where totalusers = (select count(*) Total
from users_projects
group by pid
order by total desc
limit 1)
SELECT a.name userName, c.name ProjectName
FROM users a
INNER JOIN users_projects b
ON a.uid = b.uid
INNER JOIN projects c
ON b.pid = c.pid
INNER JOIN
(
SELECT pid, COUNT(*) totalCount
FROM users_projects
GROUP BY pid
HAVING COUNT(*) = (SELECT COUNT(*) x
FROM users_projects
GROUP BY pid
ORDER BY x DESC
LIMIT 1)
) d ON b.pid = d.pid
ORDER BY a.Name ASC
(我假设“产品”=“项目”)。如果您只寻找一个项目,以下是最快的方法:
SELECT a.name userName, c.name ProjectName
FROM users a
INNER JOIN users_projects b
ON a.uid = b.uid
INNER JOIN projects c
ON b.pid = c.pid
INNER JOIN
(
SELECT pid, COUNT(*) totalCount
FROM users_projects
GROUP BY pid
HAVING COUNT(*) = (SELECT COUNT(*) x
FROM users_projects
GROUP BY pid
ORDER BY x DESC
LIMIT 1)
) d ON b.pid = d.pid
ORDER BY a.Name ASC
(我假设“产品”=“项目”)。您在使用什么<代码>SQL Server<代码>MySQL<代码>Oracle<代码>DB2?等和大多数用户一起定义产品关于第二个问题?你怎么知道一个产品拥有最多的用户?我猜你指的是项目,对吗?\n在用户项目中,我们有用户的id和项目的id,我想提取用户最多的项目,比如可能我有10个用户使用同一个项目,我想显示你在使用什么<代码>SQL Server<代码>MySQL<代码>Oracle<代码>DB2?等和大多数用户一起定义产品关于第二个问题?你怎么知道一个产品拥有最多的用户?我猜你指的是项目,对吗?\n在用户项目中,我们有用户的id和项目的id,我想提取用户最多的项目,就像我可能有10个用户有相同的项目,我想展示这一点