我的查询如下
SELECT
GEBRUIKERS.GEBRUIKERID, GEBRUIKERS.GEBRUIKERNAAM,
LAATSTONLINE,GAME.GAMENAAM,
MAX(ITEMS_IN_BEZIT.LAATSTGEBRUIKT) AS "Laatst gespeelde game"
FROM
GEBRUIKERS
LEFT OUTER JOIN
ITEMS_IN_BEZIT ON GEBRUIKERS.GEBRUIKERID = ITEMS_IN_BEZIT.GEBRUIKERID
LEFT OUTER JOIN
GAME ON ITEMS_IN_BEZIT.ITEMID = GAME.ITEMID
ORDER BY
GAME.GAMENAAM
此查询应该为我提供上次在线时用户ID的用户名以及他上次玩哪个游戏
但是我收到了标题中提到的错误。
现在我的问题是:是否有更好的方法来制定我的查询,或者有办法解决这个错误
答案 0 :(得分:1)
使用聚合函数时,您必须GROUP BY
:
SELECT GEBRUIKERS.GEBRUIKERID,
GEBRUIKERS.GEBRUIKERNAAM,
LAATSTONLINE,
GAME.GAMENAAM,
MAX(ITEMS_IN_BEZIT.LAATSTGEBRUIKT) AS "Laatst gespeelde game"
FROM GEBRUIKERS
LEFT OUTER JOIN ITEMS_IN_BEZIT
ON GEBRUIKERS.GEBRUIKERID = ITEMS_IN_BEZIT.GEBRUIKERID
LEFT OUTER JOIN GAME
ON ITEMS_IN_BEZIT.ITEMID = GAME.ITEMID
GROUP BY GEBRUIKERS.GEBRUIKERID, -- here
GEBRUIKERS.GEBRUIKERNAAM,
LAATSTONLINE,
GAME.GAMENAAM
ORDER BY GAME.GAMENAAM