SELECT
memberTable.*,
titleTable.`memberId`,
SUM(voteTable.`score`) AS totalScore,
COUNT(1) AS totalTitles
FROM
`TTPMember` as memberTable,
`TTPVote` as voteTable,
`TTPTitle` as titleTable
WHERE
titleTable.`id`=voteTable.`titleId`
AND
memberTable.`id`=titleTable.`memberId`
GROUP BY
titleTable.`memberId`
ORDER BY
totalTitles + totalScore
LIMIT
5
In deze query zitten 2 aliasses (totalTitles en totalScore)
In de ORDER BY wil ik deze gebruiken.
Nu is het probleem dat totalTitles WEL goed gevonden wordt (en goed gebruikt), maar totalScore bestaat niet (1054 -> Unknown column 'totalTitles' in 'order clause')
Hoe komt het dat de ene alias wel werkt en de andere niet?
uuhm nee, ik wil dat ie totalTitles optelt bij totalScore en de uitkomst daarvan als ORDER gebruikt (dus degene met hoogste totale score bovenaan komt)
bedankt voor het meedenken mensen, ik heb het opgelost door de bereking in de SELECT uit te voeren ipv in de ORDER BY
SELECT
memberTable.*,
titleTable.`memberId`,
SUM(voteTable.`score`) AS totalScore,
COUNT(1) AS totalTitles,
SUM(voteTable.`score`) + COUNT(1) AS totalPoints
FROM
`TTPMember` as memberTable,
`TTPVote` as voteTable,
`TTPTitle` as titleTable
WHERE
titleTable.`id`=voteTable.`titleId`
AND
memberTable.`id`=titleTable.`memberId`
GROUP BY
titleTable.`memberId`
ORDER BY
totalPoints
LIMIT
5
backticks is voor veiligheid gast, stel je hebt een kolom genaamd 'select' of 'where' of 'from', dan heb je een probleem als je geen backticks gebruikt