webForumDet fria alternativet

Få fram datum trots 0 träffar...

Databaser & SQL

4 svar · 296 visningar · startad av Picklezz

Medlem sedan jan. 2002414 inlägg
Frågan#1
"SELECT date, count( * ) AS votes FROM votes GROUP BY to_days( date ) ORDER BY `date`"

Om nu ingen har röstat ett datum så visas inte den dagen i svaret, går det att få den att lista även dagar med 0 röster?

Jag kan ju fixa det i PHP men tänkte att det är ju smidigare att få resultet direkt från MySQL om det går?

Medlem sedan dec. 200012 464 inlägg
#2

Då behöver du en tabell med alla datum i det intervall som du är intresserad av.

SELECT v.date, count( * ) AS votes 
FROM dateTable dt left join votes v on dt.date = v.date
GROUP BY date
ORDER BY date

Du kan ju ordna det med en nummertabell och lite datumaritmetik också.

Medlem sedan jan. 2002414 inlägg
#3

LarsG skrev:

Då behöver du en tabell med alla datum i det intervall som du är intresserad av.

SELECT v.date, count( * ) AS votes 
FROM dateTable dt left join votes v on dt.date = v.date
GROUP BY date
ORDER BY date

Du kan ju ordna det med en nummertabell och lite datumaritmetik också.

Det går inte på nått sätt att hämta från MySQL inbyggda datumhanterare?

Medlem sedan dec. 200012 464 inlägg
#4

Nej.

Medlem sedan jan. 2002414 inlägg
#5

LarsG skrev:

Nej.

Oki, det var ju faktiskt lite dumt för det borde ju vara en användbar funktion?!?

Någon som har något phpscript eller liknande för att dra in massa datum i en tabell snabbt, annars får jag skriva ett för så svårt är det ju inte...frågan är dock när jag vill börja...

259 ms totalt · 4 externa anrop · v20260731065814-full.d8c17768
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)