Avatar billede jacand Nybegynder
07. august 2005 - 15:06 Der er 11 kommentarer

sql sætning måske

Er det muligt at sætte disse 2 sql sætninger sammen til en.

Set Rs1 = Conn.Execute("SELECT * FROM bruger WHERE brugernr = '" & sessionbrugernr & "'")
do while not rs1.eof
Set Rs2 = Conn.Execute("SELECT * FROM post where brugernr = " & rs1("brugernr"))
if rs2.eof then

Det jeg har brug for er poster fra bruger, hvor brugernr ikke findes i tabellen post.
Avatar billede busschou Praktikant
07. august 2005 - 15:13 #1
Hvis de felter du får ud af det er de præcis samme, fx id, navn, besked osv
Så kan du bruge union
sql1 = "SELECT * FROM bruger WHERE brugernr = '" & sessionbrugernr & "'"
sql2 = "SELECT * FROM post where brugernr = " & rs1("brugernr")
set rs = Conn.Execute(sql1&" Union "&sql2)
Avatar billede busschou Praktikant
07. august 2005 - 15:15 #2
hov jeg læste ikke ordentlig efter,, glem min kommentar :o)
Avatar billede a1a1 Novice
07. august 2005 - 15:15 #3
select b.*, p.* from bruger b inner join post p ON b.brugernr=p.brugernr where brugerid=" & sessionbrugernr

;o)
Avatar billede a1a1 Novice
07. august 2005 - 15:15 #4
select b.*, p.* from bruger b inner join post p ON b.brugernr=p.brugernr where b.brugerid=" & sessionbrugernr

såååån ;o)
Avatar billede a1a1 Novice
07. august 2005 - 15:16 #5
næsten..
select b.*, p.* from bruger b inner join post p ON b.brugernr=p.brugernr where b.brugerNR=" & sessionbrugernr
Avatar billede busschou Praktikant
07. august 2005 - 15:16 #6
set rs = Conn.Execute("Select * From bruger Where brugernr Not In (Select brugernr From post Where brugernr = "&sessionbrugernr))
Avatar billede busschou Praktikant
07. august 2005 - 15:17 #7
Der mangler en " til sidst men den burde virke :o)
Avatar billede c_smidt Nybegynder
07. august 2005 - 15:18 #8
Ja, du kan gøre det ved at lave en en OUTER JOIN med en WHERE (brugernr is null i tabellen post).

eks
select (hvad du ønsker)
FROM bruger left outer join post
on bruger.brugernr=post.brugernr

where post.brugernr is null
Den skulle løse dit behov

Ved du hvordan man lukker et spørgsmål?
Avatar billede jacand Nybegynder
07. august 2005 - 15:30 #9
Sorry jeg fik brugt den forkerte kode :-)

den hedder:
Set Rs1 = Conn.Execute("SELECT * FROM bruger WHERE brugernr = '" & sessionbrugernr & "'")
do while not rs1.eof
Set Rs2 = Conn.Execute("SELECT * FROM post where postnr = " & rs1("postnr"))
if rs2.eof then

Det vil sige at, postnr skal hentes fra tabellen bruger og hvis den ikke findes i tabellen post skal den bruger data fra tabellen bruger. (der kan godt være flere poster i tabellen bruger hvor brugernr = '" & sessionbrugernr & "'"
den skal altså hente alle poster i tabellen bruger hvor den ikke finder postnr i tabellen post.
Jeg håber i forstå den meget lette forklaring :-)
Avatar billede busschou Praktikant
07. august 2005 - 15:32 #10
ok ja så skal der en join til
Avatar billede c_smidt Nybegynder
08. august 2005 - 12:49 #11
Du gør i princippet det samme som jeg skrev før:

Det er lidt svært at skrive sql'en når man ikke helt kender tabellernes attributter, så hvis dette ikke giver det rigtige resultat må du lige skrive tabellernes attributter og kardinaliteter.

select
bruger.brugernr,
post.postnr --(eller hvad du vil have med)

FROM bruger left outer join post
on bruger.postnr=post.postnr

where post.postnr is null


Det burde give det rigtige resultat.
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