Mailinglisten-Archive |
On Wed, Apr 10, 2002 at 08:27:25AM +0200, mwolf_(at)_suedstern-ag.de wrote:
<snip>
> Wer kann mir einen Tipp geben, wie ich mit doppelte Tabellen-Eintraege
> entferne. D.h. alle Attribute ausser dem Index sind identisch.
>
> Vom Effekt Aehnlich wie:
>
> DELETE FROM table where ent_a_1= ent_a_2 and ent_b_1= ent_b_2... ;
deine fragestellung ist mir noch etwas unklar ...
doppeleintraege im sinne von mehreren tupeln mit gleichen werden
kannst du in etwa so kriegen :
SELECT attr1, attr2, ... FROM foo GROUP BY attr1, attr2, ... HAVING count(*) > 1;
damit werden die tupel ueber attr1, attr2 usw zusammengruppiert
(die restlichen attribute werden ausgelassen). wenn count > 1 ist,
tauchen die entsprechenden werte demzufolge mehrfach auf.
SELECT * FROM foo WHERE (SELECT count(*) FROM foo AS foo_tmp WHERE
foo.attr1 = foo_tmp.att1 AND foo.attr2 = foo_tmp.attr2 ...) ;
sollte auch gehen. hat den vorteil, dass dir dann immer die kompletten
tupel ausgegeben werden, ist aber wesentlich langsamer ( O(n^2) ).
~-n
--
Enrico Weigelt == meTUX IT services
software development, IT service, internet security solutions
www: http://www.metux.de/ phone: +49 36207 519931
email: contact_(at)_metux.de cellphone: +49 174 7066481
php::bar PHP Wiki - Listenarchive