Avatar billede erik_a Novice
14. april 2014 - 15:42 Der er 4 kommentarer og
1 løsning

SELECT, JOIN, COUNT

Hejsa

Jeg mangler lidt hjælp til en mysql sætning.

Jeg har en række tabeller:

COW: cowid,race,name,sirename,gsirename...
SIRE: sireid,name...

I min select sætning vil jeg gerne have et udtræk med
cowid, race,name,sirename,<antal i tabellen SIRE med værdien sirename>,gsirename,<antal i tabellen SIRE med værdien gsirename>

Håber i forstår hvad jeg mener?
<...> altså antallet af (g)sirename med samme navn - 0,1,2...

Skal bruges til at finde ud af om det indtastede (g)sirename eksisterer og er unikt.

Pft
Erik
Avatar billede arne_v Ekspert
16. april 2014 - 03:54 #1
proev:

SELECT cowid, race,name,sirename,(SELECT COUNT(*) FROM sire WHERE sire.name=sirename),gsirename,(SELECT COUNT(*) FROM sire WHERE sire.name=gsirename)
FROM cow
Avatar billede erik_a Novice
16. april 2014 - 10:39 #2
Har prøvet at fyre den af, bliver aldrig færdig med forespørgslen...
Fatter det ikke, havde lavet noget lignende selv, men stadig øv.
Avatar billede arne_v Ekspert
17. april 2014 - 03:21 #3
Har du index paa sire.name, cow.sirename og cow.gsirename?
Avatar billede proaccess Nybegynder
23. april 2014 - 08:44 #4
Du kan prøve om ikke følgende løsning med joins giver bedre performance...

SELECT     c.cowid, c.race, c.name, c.sirename, COUNT(s1.sireid), c.gsirename, COUNT(s2.sireid)
FROM    COW AS c
    LEFT JOIN SIRE AS s1 ON c.sirename = s1.sirename
    LEFT JOIN SIRE AS s2 ON c.gsirename = s2.sirename
GROUP BY c.cowid, c.race, c.name, c.sirename, c.gsirename

MVH
Poul Erik
Avatar billede erik_a Novice
12. august 2014 - 08:13 #5
Bedre sent end aldrig...
Jeg undskylder og takker for hjælpen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester