Mysql max()和count()sql

Mysql max()和count()sql,mysql,sql,subquery,Mysql,Sql,Subquery,我有这些桌子: Customers ( cid , cname ) Products ( pid , pcolor) Reservations ( pid , cid , date) 我需要知道保留次数最多的产品是什么颜色,到目前为止,我写了以下内容: SELECT p.color, count(p.pid) as j FROM products as p , reservations as res WHERE p.pid = res.pid

我有这些桌子:

Customers ( cid , cname ) 
Products ( pid , pcolor)
Reservations ( pid , cid , date)
我需要知道保留次数最多的产品是什么颜色,到目前为止,我写了以下内容:

      SELECT p.color, count(p.pid) as j
      FROM products as p , reservations as res
      WHERE p.pid = res.pid
      GROUP BY p.color
      ORDER BY j DESC
      LIMIT 1

现在这个查询很好,但是没有什么问题,如果有两种不同的产品,两种不同的颜色,它们被保留了相同的次数,它只会给我其中一种(因为“限制1”)。。我能做什么?

pid pcolor是一对一关系吗?是的,它是一对一!这与op的代码完全相同,但别名不同。可能是因为同时发布答案造成的?我的意思是,除了别名,您的代码与问题完全相同。正如您在问题历史记录中所注意到的,原始问题已被编辑。检查问题的第一个版本。由于我没有收到此类变更通知,我无法编辑我的答案。因此,你的否决票是没有意义的。
SELECT pr.pcolor, count(pr.pid)
FROM Products pr
JOIN Reservations res
ON pr.pid = res.pid
GROUP BY pr.pcolor