Avatar billede mtrolle Nybegynder
02. marts 2005 - 19:37 Der er 10 kommentarer og
1 løsning

Drilsk query

Hej

Jeg har to tabeller (tabel1 og tabel2) og skal nu selecte * fra tabel1 hvor
tabel1.id ikke findes i tabel2 på en given dato, men kun når tabel1 manuel er 1., altså noget ala

SELECT `tabel1`.* FROM `tabel1`, `tabel2` WHERE `tabel1`.`id` != `tabel2`.`id` AND `tabel2`.`dato` != '2005-03-03' AND `tabel1`.`manuel`='1'

Hvordan får jeg den query til at virke?
Avatar billede moejensen Nybegynder
02. marts 2005 - 19:38 #1
du skal joine de to tab
Avatar billede moejensen Nybegynder
02. marts 2005 - 19:39 #2
ups det gik lidt hurtigt med at få trykket på send. Du skal joine de to tabeller. Kan du skrive strukturen i dine to tabeller, og de relationer de har.
Avatar billede mtrolle Nybegynder
02. marts 2005 - 19:43 #3
Jamen det eneste i where er det ovenstående...

tabel1 har:
en masse felter, men i where skal bruges:
id, manuel

tabel2 har alle de samme felter og dato og her skal bruges
id, dato
Avatar billede moejensen Nybegynder
02. marts 2005 - 19:45 #4
hvordan er relationen mellem de to tabeller
Avatar billede mtrolle Nybegynder
02. marts 2005 - 19:50 #5
id'et skal være ens på kryds af tabellerne
id'et og datoen skal være unikt i tabel2
Det er en tabel med nogle kampagner og en tabel til afviklingen af mine kampagner.
Avatar billede arne_v Ekspert
02. marts 2005 - 19:51 #6
Prøv:

SELECT tabel1.*
FROM tabel1 LEFT JOIN tabel2 ON tabel1.id=tabel2.id AND tabel2.dato = '2005-03-03'
WHERE tabel1.manual=1 AND tabel2.id IS NULL
Avatar billede mtrolle Nybegynder
02. marts 2005 - 20:03 #7
Det jeg skal er at finde alle de kampagner jeg har i tabel1 hvor manuel = 1 OG de IKKE eksistere i tabel 2 på min givne dato her fx 2005-03-03
Avatar billede arne_v Ekspert
02. marts 2005 - 20:08 #8
Ja
Avatar billede mtrolle Nybegynder
02. marts 2005 - 20:29 #9
SELECT tabel1.*
FROM tabel1 LEFT JOIN tabel2 ON tabel1.id=tabel2.id AND tabel2.dato != '2005-03-03'
WHERE tabel1.manual=1 AND tabel2.id IS NULL
Denne giver det ønskede (bemærk != ved dato)
Problemet er den bare giver det selvom datoen findes også... Det skal den ikke...
Avatar billede mtrolle Nybegynder
02. marts 2005 - 20:47 #10
Jeg skal have alt fra tabel1 hvor manuel=1 og tabel1.id ikke optræder i tabel2.id hvor tabel to dato er en given dato
Avatar billede mtrolle Nybegynder
02. marts 2005 - 21:14 #11
Da det hastede har jeg lavet et script hvor jeg har delt queryen op i 3... Det virkede.
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