Avatar billede cms Nybegynder
26. maj 2002 - 01:53 Der er 2 kommentarer og
2 løsninger

Inner join og Count(*)

Ja - jeg har følgende:
  rows = Conn.Execute("SELECT *, COUNT(*) AS rowcount FROM tabel1 INNER JOIN tabel2 ON tabel1.id=tabel2.id WHERE tabel1.owner='hej' GROUP BY tabel2.id");

Men rowcount bliver konstant 1, selvom antallet af rækker er større. Hvad er galt?
Avatar billede hansk Nybegynder
26. maj 2002 - 10:48 #1
Du skal være mere specifik i den gruppering du vil have.
I dit eksempel får du en gruppering ned på laveste niveau, og derfor får du naturligvis en count på 1.
Count viser hvormange rækker der er i den gruppe du har trukket ud.
Avatar billede cms Nybegynder
26. maj 2002 - 13:08 #2
Resultatetet er - uden COUNT og GROUP BY - et antal rækker fra tabel1 og tabel2 med parvis samme id. Jeg behøver slet ikke GROUP BY for at vise mit resultat. Da den meldte om fejl da jeg puttede COUNT(*) sagde den, at GROUP BY var nødvendig. Så måtte jeg jo gruppere på dét resultat jeg alligevel fik ud...
Men hvad skal jeg så gøre?
Avatar billede barklund Nybegynder
26. maj 2002 - 15:48 #3
Udvælg kun COUNT(*)....

Som i:

"SELECT COUNT(*) AS rowcount FROM tabel1 INNER JOIN tabel2 ON tabel1.id=tabel2.id WHERE tabel1.owner='hej'"
Avatar billede cms Nybegynder
26. maj 2002 - 16:01 #4
Takker - I havde begge ret :)
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