我試圖在甲骨文的Sql子查詢不工作 「ORA-00904: 」A2 ID_USER「。」 「:無效的標識符」
SELECT A1.ID_USER,A1.CNAME,
(SELECT CNAME
FROM
(SELECT CNAME,COUNTER
FROM
(SELECT id_Category AS IDCATEGORT,COUNT(*) AS COUNTER
FROM gamescateg
WHERE id_game IN
(SELECT ID_GAME
FROM UserGames
WHERE id_user=UsersGamers.ID_USER
)
GROUP BY id_Category
)
JOIN Categories
ON id_Category =IDCATEGORT
ORDER BY COUNTER DESC
)
WHERE rownum = 1
) AS FAVORITECATEGORY
FROM UsersGamers A1
JOIN UsersGamers A2 ON A1.ID_USER= A2.ID_USER
運行此查詢,但我得到的錯誤
ORA-00904: "A2"."ID_USER": invalid identifier
A2.ID_USER需要做子查詢 爲什麼? 如何解決? 你能幫助我嗎?
我解決它BY CREATE FUNCTION
CREATE OR REPLACE FUNCTION FAVORITECATEGORYfunc(idnumber NUMBER)
RETURN VARCHAR2
IS
l_conc_names VARCHAR2(32676);
BEGIN
SELECT CNAME INTO l_conc_names
FROM
(SELECT CNAME,COUNTER
FROM
(SELECT id_Category AS IDCATEGORT,COUNT(*) AS COUNTER
FROM gamescateg
WHERE id_game IN
(SELECT ID_GAME
FROM UserGames
WHERE id_user=idnumber
)
GROUP BY id_Category
)
JOIN Categories
ON id_Category =IDCATEGORT
ORDER BY COUNTER DESC
)
WHERE rownum = 1;
RETURN l_conc_names;
END;
和查詢是
select CNAME,FAVORITECATEGORYfunc(id_user) from usersgamers
感謝幫助:)
您將'UsersGamers'加入自己使用同一列'ID_USER',爲什麼? – dnoeth
編輯你的問題並解釋你正在嘗試做什麼。我懷疑查詢的方式比它需要的複雜。 –