/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MySQL] vise ens poster
Fra : lmer


Dato : 09-11-02 00:31

Hej
Jeg skal lave en query der viser alle de poster hvor en given værdi optræder
flere gange. F.eks alle de records hvor emailadressen er den samme. Det
nærmeste jeg er kommet er group by hvor count(email) er > 1, men der viser
den jo kun 1 record.
Hvordan viser man alle de records hvor count(email)>1?
Med andre ord skal jeg vise de records der IKKE er distinct.
Håber jeg udtrykker mig klart nok, og at jeg kan finde hjælp her.
Mvh
Thomas







 
 
Jens Gyldenkærne Cla~ (11-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-11-02 11:18

lmer skrev:

> Det nærmeste jeg er kommet er group by hvor count(email) er > 1,
> men der viser den jo kun 1 record.

Sådan noget som det her?:

SELECT email, count(*) as antal
FROM personer
GROUP BY email
HAVING count(*) > 1

Den viser de værdier af emailadresser der findes i mere end én
post.

> Hvordan viser man alle de records hvor count(email)>1?

Nu er der vist noget med mySQL og subselects som ikke rigtig
fungerer. I et RDMS som understøtter subselect kan man skrive:

SELECT <feltliste>
FROM <tabel>
WHERE <dubletfelt> IN (
   SELECT <dubletfelt>
   FROM <tabel>
   GROUP BY <dubletfelt>
   HAVING count(*) > 1
   )

Uden subselects kan man (så vidt jeg kan se) blive nødt til at
bruge en temporær tabel eller en cursor til at finde alle posterne.

PS: Du behøver kun at sende dit indlæg én gang.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Jakob Andersen (12-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 12-11-02 20:38

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote
> Uden subselects kan man (så vidt jeg kan se) blive nødt til at
> bruge en temporær tabel eller en cursor til at finde alle posterne

Man kan vel gøre noget ala dette:

DELETE t1 FROM <table> t1
INNER JOIN <table> t2 ON t1.Email = t2.Email t1.<IdentityColumn> >
t2.<IdentityColumn>

--
Jakob Andersen



Jakob Andersen (12-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 12-11-02 20:39

"Jakob Andersen" <jakob@effectus.dk> wrote
> Man kan vel gøre noget ala dette:

Og nej, det kunne man så ikke. Sådan går det når man ikke læser spørgsmålet
ordentligt.

--
Jakob Andersen



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste