webForumDet fria alternativet

Ta bort

4 svar · 255 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Jag har en tabell i databasen som heter anvandare och sedan en som heter gastbok.

Jag vill kolla att om datum i anvandare är mer än 1 månad och antal gästboksinlägg ifrån tabellen gastbok är mindre än 5 så ska användaren tas bort och dennes gästboksinlägg!

Id är användarens unika nr och i gastbok läggs detta i ett fält med namn anvId.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det borde gå att göra i två steg.


delete from anvandare where datediff('n',datum,date()) > 1
and not exists (select 1 from gastbok 
                 where anvId = anvandare.id
                 group by anvId
                 having count(*) > 5)

delete from gastbok where anvid not in (select id from anvandare)

Jag vet inte vilken dbms du använder, men ovanstående borde gå bra i Access. (Alltså otestad kod.)

AsaMedlem sedan dec. 20011 860 inlägg
#3

Tackar - ska testa! :)

Verkade funka! :) Tack igen!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Ojdå, jag såg nämligen ett fel.

delete from anvandare where datediff('N',datum,date()) > 1

borde vara

delete from anvandare where datediff('M',datum,date()) > 1
AsaMedlem sedan dec. 20011 860 inlägg
#5

Jag ändrade till d och 30 förrut!

128 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)