2015-05-29 122 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小號返工您的疑問,但我已經給上面是使用子查詢,以獲得最大一個正確的方法所有團體的價值。