query met alias

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roel

Roel

20/07/2007 09:45:00
Quote Anchor link
Ik heb 1 query :

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?
 
PHP hulp

PHP hulp

21/05/2024 01:05:00
 
- SanThe -

- SanThe -

20/07/2007 09:55:00
Quote Anchor link
ORDER BY
totalTitles + totalScore

Plus (+)?

ORDER BY
totalTitles, totalScore
LIMIT
 
Roel

Roel

20/07/2007 10:20:00
Quote Anchor link
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)
 
Ultimatum

ultimatum

20/07/2007 10:23:00
Quote Anchor link
Zet er eens haakjes omheen?


ORDER BY
(totalTitles + totalScore)
 
Roel

Roel

20/07/2007 10:34:00
Quote Anchor link
tried, failed.
Wat ik ontdekt heb is :
ORDER BY totalTitles (werkt)
ORDER BY totalScore (werkt)

Het zit hem dus echt in het optellen van de order by
 
Roel

Roel

20/07/2007 10:49:00
Quote Anchor link
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
 
- wes  -

- wes -

20/07/2007 10:52:00
Quote Anchor link
sloop nog even die enorm lelijke vuile vieze gore kutdbackticks uit je query
 
Roel

Roel

20/07/2007 10:57:00
Quote Anchor link
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
 
- wes  -

- wes -

20/07/2007 11:12:00
Quote Anchor link
'gast', als je een kolom genaamt select where of from hebt in je tabel heb je gewoon een enorm slecht opgemaakte tabel.

voor jou veiligheid, haal die backticks weg
 
Klaasjan Boven

Klaasjan Boven

20/07/2007 11:33:00
Quote Anchor link
En 'gast ' lees even die tutorail over het juiste gerbuik van GROUP BY
 
Desertme(sander)

desertme(sander)

20/07/2007 11:50:00
Quote Anchor link
En 'gast ' doe het nou maar elke keer is dit het probleem als het over query gaat
 
Frank -

Frank -

20/07/2007 15:06:00
Quote Anchor link
Roel schreef op 20.07.2007 10:57:
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
Die is gek! Heb je wel enig idee waar je mee bezig bent? Deze opmerking raakt kant nog wal, hoe verzin je het. Ga eens SQL leren, dan zal ook jij leren dat backtics juist (veiligheids-) problemen veroorzaken.

Ritueel verbranden die zooi, ga je zitten schamen, gebruik ze nooit meer en vergeet vervolgens dat je ooit zo stom bent geweest om ze te gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
- wes  -

- wes -

20/07/2007 15:12:00
Quote Anchor link
frank ik ben trots op je
als ik overreden word heb ik een waardig opvolger ;)
 
Desertme(sander)

desertme(sander)

20/07/2007 15:27:00
Quote Anchor link
haha lol zeker die zit frank maar je hebt het over ritueel edit hem ff zet ff En 'gast', er voor :P
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.