Ik wil de hoogste waarde uit een kolom uit m'n database opvragen, echter geeft hij een error als er meerdere dezelfde hoogste waardes zijn (met mysql function MAX). Ofwel, als de hoogste waarde 10 is en daar zijn 2 rijen van, geeft hij een error.
Hoe kan ik ervoor zorgen dat hij alsnog een van de rijen ophaalt?
Laat je query eens zien, die je nu hebt.
Wat voor error krijg je?
Het gaat om deze query:
Hij haalt de hoogste waarde uit een VIEW en koppelt die vervolgens aan een persoon:
SELECT * FROM personen WHERE id=(SELECT id FROM gem_cijfers WHERE cijfer=(SELECT MAX(cijfer) FROM gem_cijfers)) LIMIT 1

Error weet ik niet precies. Volgens mij staat het error report niet echt aan, moet ik maar eens naar gaan kijken ;-)
Probeer het eens zo:

SELECT p.rij, p.rij, p.rij, p.rij
FROM personen AS p
LEFT JOIN gem_cijfers AS g
	ON g.id = p.id
ORDER BY g.cijfer DESC
LIMIT 0, 1
WHERE .... = gevolgd door een subquery, dan mag de subquery maar één waarde teruggeven, anders moet je
WHERE .... IN gebruiken of een JOIN:

SELECT
	p.naam,
	p.id,
	g.cijfer
FROM
	personen p
JOIN
	gem_cijfers g ON p.id = g.id
WHERE g.cijfer = (SELECT MAX(cijfer) FROM gem_cijfers)
Bedankt voor jullie reacties.
Ik heb jouw query geprobeerd, Eddy, en hij lijkt helemaal goed te werken. Bedankt dus!

Reageren