Avatar billede egeriis Nybegynder
15. februar 2006 - 14:08 Der er 21 kommentarer og
1 løsning

Antal rækker som ikke har en record i anden tabel

Jeg skal have antal rækker fra tabel x hvor kID ikke eksisterer som kID i tabel y.
Avatar billede michael_stim Ekspert
15. februar 2006 - 14:15 #1
select count(a.kID) from tabel a, tabel b where a.kID<>b.kID
Avatar billede arne_v Ekspert
15. februar 2006 - 14:23 #2
SELECT COUNT(*) FROM x WHERE kid NOT IN (SELECT kid FROM y)

hvis nyere MySQL
Avatar billede arne_v Ekspert
15. februar 2006 - 14:28 #3
michaels returnerer nok for mange
Avatar billede michael_stim Ekspert
15. februar 2006 - 14:30 #4
Ikke "nok". Den returnere for mange. Og som du siger så fungerer subselect kun med de nyeste versioner af MySQL
Avatar billede egeriis Nybegynder
15. februar 2006 - 14:31 #5
Har ikke en nyere MySQL desværre.

SELECT COUNT(a.id) FROM opkald_ads a, opkald_callback c WHERE a.branche='" . $r['branche'] . "' && a.saelger='" . $thisuser['initialer'] . "' && a.kundeid<>c.kundeid

Det kører ikke specielt heldigt.
Avatar billede michael_stim Ekspert
15. februar 2006 - 14:34 #6
Du skal ud i noget join.
Avatar billede egeriis Nybegynder
15. februar 2006 - 14:35 #7
Jeg vil gerne se hvordan. Har selv forsøgt, men det virkede heller knap så heldigt :/
Avatar billede michael_stim Ekspert
15. februar 2006 - 14:38 #8
Ikke min stærke side. Arbejder med Oracle (dermed subselects).
Avatar billede arne_v Ekspert
15. februar 2006 - 14:41 #9
SELECT COUNT(*) FROM x LEFT JOIN y ON x.kid=y.kid WHERE y.kid IS NULL
Avatar billede egeriis Nybegynder
15. februar 2006 - 15:43 #10
Jeg kan ikke rigtig få det til at fungere som det skal:

SELECT COUNT(*) FROM " . $tables['opkald_ads'] . " a LEFT JOIN " . $tables['opkald_callback'] . " c ON a.kundeid=c.kundeid WHERE a.branche='" . $r['branche'] . "' && a.saelger='" . $thisuser['initialer'] . "' && c.kundeid IS NULL

Ser det ikke meget korrekt ud?
Avatar billede arne_v Ekspert
15. februar 2006 - 15:46 #11
det har jeg lidt svaert ved at gennemskue
Avatar billede egeriis Nybegynder
16. februar 2006 - 11:12 #12
SELECT COUNT(*) FROM opkald_ads a LEFT JOIN opkald_callback c ON a.kundeid=c.kundeid WHERE a.branche='" . $r['branche'] . "' && a.saelger='" . $thisuser['initialer'] . "' && c.kundeid IS NULL

Hvor $r['branche'] indeholder et branche-navn og $thisuser['initialer'] indeholder initialerne på en sælger.
Avatar billede egeriis Nybegynder
27. februar 2006 - 16:13 #13
Ingen kommentarer?
Avatar billede arne_v Ekspert
27. februar 2006 - 16:19 #14
det er altsaa noget svaert uden at kende hele konteksten - det kunne jo
vaere en PHP fejl som slet ikke havde noget med MySQL at goere

men skulle jeg gaette saa:

SELECT COUNT(*) FROM opkald_ads a LEFT JOIN opkald_callback c ON a.kundeid=c.kundeid a.branche='" . $r['branche'] . "' WHERE a.saelger='" . $thisuser['initialer'] . "' && c.kundeid IS NULL
Avatar billede egeriis Nybegynder
27. februar 2006 - 16:23 #15
Det er blot nogle værdier.. PHP kan det ikke være, eftersom der ikke er andet en de to variabler som har indflydelse, men et eksempel kan være at branchen er "Murermestre" og initialerne kan være "LL"..
Avatar billede egeriis Nybegynder
27. februar 2006 - 16:25 #16
Hvad hare du ændret, udover at lave syntax error? :P :)
Avatar billede arne_v Ekspert
27. februar 2006 - 16:31 #17
jeg har flyttet testet paa a.branche fra WHERE til ON
Avatar billede egeriis Nybegynder
27. februar 2006 - 17:13 #18
Arh, okay.. Men hvorfor?
Jeg synes godt nok det kører lidt langsomt, og det fungerer heller ikke rigtigt.. Men det er vel mig som har lavet det forkert somehow :/
Avatar billede egeriis Nybegynder
27. februar 2006 - 17:15 #19
Kan man lave det omvendt. JOIN med opkald_ads og SELECT FROM opkald_callback?
Avatar billede arne_v Ekspert
27. februar 2006 - 17:39 #20
jeg vroevler ogsaa - glem den flytning
Avatar billede arne_v Ekspert
27. februar 2006 - 17:41 #21
men saa er jeg igen helt blank i hvorfor det ikke virker ...
Avatar billede egeriis Nybegynder
11. september 2007 - 14:00 #22
Vi må hellere lukke her.
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