• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Filterung (Hilfe)

arbor95

Geoguru
Kann mal jemand ein sql Statement für die Selektion von Caches, die noch keinen Fund haben, ergänzen?
ein Teil könnte so aussehen:
Select * from Caches left JOIN Logs on Caches.Id = Logs.CacheId where Logs.Type is NULL

In den Logs ist das Feld Type gleich 0 ein Fund. (attended und webcam foto taken mal ignoriert)

Merci
 

cacheboxer

Geomaster
Code:
SELECT * FROM Caches WHERE NOT EXISTS (SELECT Logs.CacheId FROM Logs WHERE Caches.Id = Logs.CacheId AND Logs.Type = 0)

ggf. "Logs.Type = 0" noch um weitere Types ergänzen, die als Fund gelten sollen:
Code:
(Logs.Type = 0 OR Logs.Type = 10)

Darf ich darauf hinweisen, dass so ein FTF-Filter im CB-Kontext so rein gar keinen Sinn macht? Man würde da so oder so auch Caches in der Ergebnismenge haben, die es schon seit 10 Jahren gibt, von denen man aber nur noch DNFs, NMs und NAs in der Datenbank hat...
 
OP
arbor95

arbor95

Geoguru
Ich habe für die Liste der möglichen FTF es jetzt bei mir mal so abgespeichert:
where not exists (select Logs.CacheId from Logs where c.Id = Logs.CacheId and Logs.Type = 0) and Type in (0,1,2,3,4,8,9,10)

Da kam dann noch die Frage, wie man alte Events aus der Datenbank löscht (filtern und gefilterte löschen). Das könnte so aussehen:
where Type in (5,6,7,22,26) and DateHidden < CURRENT_TIMESTAMP
 
Oben