14. juni 2006 - 20:26Der 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.
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")
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")
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")
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.
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")
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
Synes godt om
Ny brugerNybegynder
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.