webForumDet fria alternativet
Logga in / Bli medlem

Big SQL problemas

Databaser & SQL

4 svar · 184 visningar · startad av Jörgen HP

Medlem sedan feb. 20012 412 inlägg
Frågan#1

Hej!

Jag har följande problem som jag inte vet riktigt hur jag ska tackla.

Tabeller:

ignorelist

AnvId
IgnoreId

meddelande

Id
From
Too
Messdate
Status
Message
Subject

På enklaste sätt vill jag kolla genom tabellen meddelande efter nya meddelande. Men om fältet From innehåller ett Id som överensstämmer med IgnoreId i tabellen ignorelist ska det meddelandet raderas.

Tacksam för någon bra ide :)

mvh Jörgen

Medlem sedan dec. 200012 464 inlägg
#2

Raderas?

Vad betyder anvId i Ignoretabellen?

Ta fram alla meddelanden med status=ny och där from inte finns i Ignore

 select * 
   from meddelande as m 
  left outer join ignorelist as i 
  on m."From" = i.ignoreid
 and i.anvId = 4711
 where i.ignoreid is null 
   and status = 'Ny'

Använd inte from som kolumnnamn

Medlem sedan feb. 20012 412 inlägg
#3

Hej!

Tack, ska genast byta namn på kolumnen.

AnvId är dess användarid som har satt en viss person på sin ignorelista.

Alltså person anvid (1) har satt personen ignoreid (5) i sin ignorelista.

Är det inte lämpligt att radera meddelande som en användare vill ignorera?

mvh Jörgen :)

Medlem sedan dec. 200012 464 inlägg
#4

Åh fan, då missförstod jag.


  delete mess from mess,ignore
    where mess.till = ignore.anvid
      and mess.fro = ignore.ignoreid
      and mess.status = 'new'

Du får testa ut det noga eftersom syntaxen är specifik för mysql och jag har ingen möjlighet att testa själv.

(Normalt skulle man skriva frågan med hjälp av en subselect men då det inte finns så ... )

Medlem sedan feb. 20012 412 inlägg
#5

Tackar ödmjukast LarsG :)

mvh Jörgen

253 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)