MySQL:FROM 子句中的子查询

标签 mysql

我正在尝试创建一个 View ,但我一直收到错误消息,指出 FROM 子句中的子查询

需要创建这些 View

SELECT EPC_ploc, COUNT(EPC_ploc)
FROM P_HAS_LOC
GROUP BY EPC_ploc
HAVING COUNT(EPC_ploc) =
(   
    SELECT MAX(mycount)
    FROM
    (
        SELECT EPC_ploc, COUNT(EPC_ploc) mycount
        FROM P_HAS_LOC
        GROUP BY EPC_ploc
    ) AS mycountt
)

SELECT Category_ID_h, COUNT(Category_ID_h)
FROM P_HAS_CA GROUP BY Category_ID_h
HAVING COUNT(Category_ID_h) = 
(   
    SELECT MAX(mycount)
    FROM
    (
        SELECT Category_ID_h, COUNT(Category_ID_h) mycount
        FROM P_HAS_CA
        GROUP BY Category_ID_h) AS mycountt
    )
)

最佳答案

我认为您需要重新处理查询中的子查询,这会导致所有问题。你应该能够摆脱这个:

SELECT EPC_ploc, COUNT(EPC_ploc)
FROM P_HAS_LOC
GROUP BY EPC_ploc
HAVING COUNT(EPC_ploc) =
(   
    SELECT COUNT(EPC_ploc)
    FROM P_HAS_LOC
    GROUP BY EPC_ploc
    ORDER BY COUNT(EPC_ploc) DESC
    LIMIT 1;
)

SELECT Category_ID_h, COUNT(Category_ID_h)
FROM P_HAS_CA
GROUP BY Category_ID_h
HAVING COUNT(Category_ID_h) = 
(   
    SELECT COUNT(Category_ID_h)
    FROM P_HAS_CA
    GROUP BY Category_ID_h
    ORDER BY COUNT(Category_ID_h)
    LIMIT 1;
)

正如@pala_ 提到的,您还可以使用 JOIN 重新处理您的查询,但我上面给出的是使用子查询获取所有组的最大值的一种正确方法。

关于MySQL:FROM 子句中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521187/

相关文章:

mysql - SQL : Count the number of occurrences occuring on output column and calculate some percentage based on the occurences

mysql - 如何在sql中查找数据时间戳

mysql - 如何返回列中连续行与其他数据的差异 (mySQL)

php - 复选框始终显示错误值(未选中)

mysql - 给定特定的月份和年份,如何获得一个月的天数?

sql - MySQL 查询聚合执行事件的用户

mysql - 优化带有文件名和日期比较的 Mysql select 查询

php - 我的 PDO/MySQL 语法有什么问题?

php 文件在本地服务器上正常工作,但在在线服务器上时失败

php - MySQL中的Strtotime查询[基本PHP页面]