Ik loop tegen een probleem aan en weet niet hoe ik dit moet oplossen.
select * from beoordeling WHERE groep = '16' GROUP BY id_talent ORDER BY datum
Hij laat nu 1 beoordeling zien van elk talent, dat is opzicht goed. Alleen de ORDER BY doet hij nu naar de GROUP waardoor ik niet de laaste datum krijg. DESC er achter zetten helpt ook niet.
Ik weet dus niet hoe ik er voor kan zorgen dat hij de laaste datum pakt van de beoordeling
al geeft een query het gevraagde resultaat, dan nog moet je niet group-by gebruiken icm. SELECT*.
Hij pakt in die foute query een "groupering" op talent_id. Daarbij pakt hij een willekeurige rij. Die ene rij wordt gesorteerd (wat netto geen effect heeft).
Toevallig is dat nu niet het resultaat dat Jolly zoekt.
Was dat wel het geval geweest, dan was de query goed bevonden, en zit je over 3 maanden je af te vragen waarom er soms een verkeerde datum genoemd wordt.
Je moet eigenlijk zorgen dat Mysql alleen goede query's uitvoert:
die set query zou je in phpmyadmin een keer uit kunnen voeren.
In elk geval in die sessie zou dat bewaard moeten blijven en mag je een incomplete group-by query's uitvoeren.
Yes, dit werkt.
Ik ben jullie dankbaar voor de hulp.
[size=xsmall]Toevoeging op 01/02/2023 12:16:21:[/size]
We zijn er toch nog niet helemaal haha.
Ik heb ook nog een cel performance en potentie.
Deze zijn gevuld bij de datum 01-02-2023 met het nummer 2 en 2
en bij de datum 31-01-2023 met het nummer 1 en 1
Deze nummers kunnen natuurlijk veranderen maar dit is zoals er er nu in staan.
Ook te zien in de afbeelding hier boven.
Ik voer nu uit;
SELECT id_talent, MAX(datum) AS laatstedatum, performance as performance, potentie as potentie FROM beoordeling WHERE groep = '16' GROUP BY id_talent
Dan krijg ik bij laastedatum te zien 2023-02-01 en bij performance en potentie het getal 1 en 1
Als ik in de datbase kijk zou dit dus getal 2 en 2 moete zijn.
[size=xsmall]Toevoeging op 01/02/2023 12:46:17:[/size]
Ik krijg niet de cellen er uit zeg maar die bij de rij hoort van de datum
Begrijp hem niet helemaal. Ik wil gewoon hebben dat hij de RIJ laat zien van de laatste datum van het talent. En ik moet meer weergaves krijgen als het natuurlijk verschillende talenten zijn
Je kunt eest een query draaien die de laatste datum per talent ophaalt:
SELECT talent_id, MAX(datum) FROM beoordelingen GROUP BY talent_id;
En dat joinen met een algement query:
SELECT b.*
FROM beoordelingen b
JOIN (SELECT talent_id, MAX(datum) masdatum FROM beoordelingen GROUP BY talent_id) AS sub
ON sub.talent_id = b.talent_id AND sub.maxdatum = b.datum
NB: ik weet even niet zeker of ik de haakjes in de join regel goed heb staan, en of "AS sub" helemaal klopt.
[size=xsmall]Toevoeging op 01/02/2023 15:44:12:[/size]