Avatar billede jacand Nybegynder
14. juni 2006 - 20:26 Der er 6 kommentarer og
1 løsning

Select fra tabel hvis aktiv = 1 i tabel 2

Hvordan gør man lige det :-)

Set Rs = Conn.Execute("SELECT id,emne,sidsteindlaeg,status,brugernr,svaret FROM helpdesk Where (select aktiv from bruger where brugernr = helpdesk.brugernr) = 1 ")

Altså den skal kun lave en select på de poster i helpdesk hvor aktiv = 1 i tabellen bruger.
Avatar billede eagleeye Praktikant
14. juni 2006 - 20:36 #1
Hvilke kolonner i tabel og tabel2 binder de to tabeller sammen er det brugernr i begge tabeller:

Eks:

Set Rs = Conn.Execute("SELECT id,emne,sidsteindlaeg,status,brugernr,svaret FROM helpdesk Where brugernr in (select brugernr from bruger where aktiv = 1 ")





Alternativ kan du lave en JOIN sql sætning:

Set Rs = Conn.Execute("SELECT helpdesk.id,helpdesk.emne,helpdesk.sidsteindlaeg,helpdesk.status,helpdesk.brugernr,helpdesk.svaret FROM helpdesk INNER JOIN bruger ON helpdesk.brugernr =  bruger.brugernr WHERE bruger.aktiv = 1")
Avatar billede jacand Nybegynder
14. juni 2006 - 20:55 #2
Ja det er brugernr der binder de to tabeller sammen.

Jeg har prøvet begge dine forslag men den lister stadig alle poster i helpdesk også dem hvor aktiv = 0 i tabellen bruger.

Det er en MYSQL database jeg har.
Avatar billede eagleeye Praktikant
14. juni 2006 - 21:16 #3
umidddelbart skulle den med JOIN virker prøv evt. at rette INNER til LEFT sådan her:


Set Rs = Conn.Execute("SELECT helpdesk.id,helpdesk.emne,helpdesk.sidsteindlaeg,helpdesk.status,helpdesk.brugernr,helpdesk.svaret FROM helpdesk LEFT JOIN bruger ON helpdesk.brugernr =  bruger.brugernr WHERE bruger.aktiv = 1")



Er aktiv = 0 eller Null?
Avatar billede jacand Nybegynder
14. juni 2006 - 22:18 #4
Sorry...
jeg fik kigget i min produktions DB og ikke min test DB hvem der havde aktiv = 1 <:o)

Begge dine forslag virker.

Jeg fandt også lige denne på mysql.org som også virker.
Set Rs = Conn.Execute("SELECT * FROM helpdesk, bruger WHERE helpdesk.brugernr=bruger.brugernr and bruger.aktiv = '1' order by helpdesk.sidsteindlaeg")
Avatar billede jacand Nybegynder
15. juni 2006 - 15:27 #5
Jeg har lige et lille spørgsmål mere :-)
Kan man lave disse 2 om til 1 select?

Set Rs = Conn.Execute("Select * from helpdesk")
Set Rs1 = Conn.Execute("select id from bruger WHERE brugernr = '" & rs("brugernr") & "'")
if rs1.eof then
bla.
bla.
Avatar billede eagleeye Praktikant
15. juni 2006 - 20:43 #6
Ja det skulle være mulig men skal den hente alle fra brugere eller kun den føste fra helpdesk?

Denne tager kun en bruger fra brugere og det er den føste fra tabellen helpdesk
Set Rs1 = Conn.Execute("select id from bruger WHERE brugernr = '" & rs("brugernr") & "'")


Hvis du skal hente alle fra helpdesk prøv noget som dette:


Set Rs1 = Conn.Execute("select bruger.id from bruger INNER JOIN helpdesk ON bruger.brugernr = helpdesk.brugernr")
Avatar billede jacand Nybegynder
15. juni 2006 - 22:06 #7
Nej det den skal er at hente poster fra helpdesk hvor der er en bruger i tabellen bruger med helpdesk.brugernr
altså hvis der ikke er en bruger der opfylder Set Rs1 = Conn.Execute("select id from bruger WHERE brugernr = '" & rs("brugernr") & "'") skal den ikke tage helpdesk sagen med.

Jeg kan se at den skulle have heddet if not rs1.eof then
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
Kurser inden for grundlæggende programmering

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