n'abend,
sqlite> SELECT id, lastip FROM members m1 WHERE
...> (SELECT COUNT(*) FROM members m2 WHERE m2.lastip = m1.lastip) > 1;
Das ist eine korrellierende Subquery. Das bedeutet, dass die Zweite SELECT-Query für \*jeden Datensatz\* aus der ersten Query ausgeführt wird. Das ist - was die Performance angeht - denkbar schlecht.
Stell dir vor du fährst mit einem 5 Meter breiten Panzer auf einer 6 Meter breiten Straße zum Einkaufen. Wenn Nachts die Straßen leer sind ist das kein Problem. Aber zur Rush Hour kannst du dein Vorhaben glatt vergessen.
Schau dir mal an was die Datenbank mit der Query macht. Das EXPLAIN Keyword wird dir weiterhelfen. Da du nicht angegeben hast welches DBMS du einsetzt, kann ich dir auch keinen Link zur entsprechenden Dokumentation geben.
weiterhin schönen abend...
--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|