2015-05-29 120 views
2

我试图创建一个视图,但我一直在FROM子句MySQL的:子查询在FROM子句

得到一个错误说子查询需要创建这些

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 
    ) 
) 
+0

您需要将这些查询重写为连接而不是子查询。如果你想在视图中看到它们。 –

+0

你得到了什么确切的错误信息? – Rameez

+0

它将'View's SELECT在FROM子句中包含一个子查询' –

回答

1

我认为你需要重新在你的查询,这是造成所有问题的子查询。你应该能够逃脱这样的:

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小号返工您的疑问,但我已经给上面是使用子查询,以获得最大一个正确的方法所有团体的价值。