---
title: "Fråga efter nåt som inte finns...??"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21938-fråga-efter-nåt-som-inte-finns"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Eclipse"
published: "2002-02-12T14:57:00.000Z"
updated: "2002-03-04T21:33:24.000Z"
replies: 15
views: 398
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/21938-fråga-efter-nåt-som-inte-finns"
---

# Fråga efter nåt som inte finns...??

## #1 — Eclipse, 2002-02-12T14:57Z

```
IF request("ID") <> "" THEN
SQL = "SELECT job.x_ID, job.x_name, job.x_type, job.x_date, " _
& " member.x_ID, member.x_firstname, member.x_lastname, member.x_company, "_
& " staff.x_ID, staff.x_firstname, staff.x_lastname, staff.x_company "_
& " FROM users member, users staff, job WHERE " _
& " job.x_userID = member.x_ID AND " _
& " job.x_staffID = staff.x_ID AND " _
& " job.x_ID = " & request("ID") & ";"

SQL = "SELECT job.x_ID, job.x_name, job.x_type, job.x_date, " _
& " member.x_ID, member.x_firstname, member.x_lastname, member.x_company "_
& " FROM users member, job WHERE " _
& " job.x_userID = member.x_ID AND " _
& " job.x_ID = " & request("ID") & ";"

'response.write sql & "<BR><BR>"
on error resume next
set mySQL = Conn.Execute(SQL)
IF NOT mySQL.EOF THEN listPosts = mySQL.GetRows()

END IF
```

Den första varianten fungerar inte där av den andra... men kan man få med data på nåt sätt i alla fall!?

Är frågan otydlig?

Permalänk: https://www.webforum.nu/p/21938

## #2 — LarsG, 2002-02-12T15:26Z

outer join 

```
IF request("ID") <> "" THEN
SQL = "SELECT job.x_ID, job.x_name, job.x_type, job.x_date, " _
& " member.x_ID, member.x_firstname, member.x_lastname, member.x_company, "_
& " staff.x_ID, staff.x_firstname, staff.x_lastname, staff.x_company "_
& " FROM users member inner join job on job.x_userID = member.x_ID ) left outer join users staff on " _
& " job.x_staffID = staff.x_ID where " _
& " job.x_ID = " & request("ID")
```

Permalänk: https://www.webforum.nu/p/353899

## #3 — Eclipse, 2002-02-12T21:23Z

Tack för det! Jag testade men fick det inte att fungera. Jag hittade en intressant tråd [här](http://cgi.webforum.nu/wf/Forum42/HTML/000782.html) men lyckades endå inte få ordning på det hela.

Finns det något uppenbart fel med denna kod? (response.write)

```
SELECT x_ID, x_firstname FROM ([users] LEFT OUTER JOIN [jobX] ON jobX.x_staffID = users.x_ID );
```

\[jobX\]
x_jobID
x_staffID

Permalänk: https://www.webforum.nu/p/353900

## #4 — LarsG, 2002-02-12T22:11Z

Finns det något uppenbart fel med denna kod?

Nej,kan du berätta något mer om dina känslor inför denna select. Är det något som du inte är tillfreds med eller något som du önskar att du gjort annorlunda?

Permalänk: https://www.webforum.nu/p/353901

## #5 — Eclipse, 2002-02-13T08:26Z

Känslor!? He, he... Nej, jag ska inte vara mer poetiskt än nödvändigt!

Det skulle i så fall vara att man måste ha en öppen attityd, men det finns redan Open Source så där har andra hunnit före.

\---
Nej, så här ska det vara. Det finns en drös med \[job\] och en stor mängd \[users\] men med olika attribut. 

users member, users customer, users staff

Are yuou with? En användare kan endast vara EN av dessa alternativ. Det kollas tidigare i ett annat sammanhang. Givetvis kopplas en användare till ett job med job.x_userID men nu vill uppdragsgivaren även att en administratör, staff, ska kunna kopplas till ett jobb så att när jobben listas ser dom bara sina egna och möjligen de jobb som inte har någon administratör kopplad till sig.

Jag visste inte om jag då skulle skapa en job.x_staffID eller, som ovan, en speciell tabell avsedd för detta. \[jobX\], x_jobID, x_staffID.

Fördelen med den extratabellen är att man kan definiera vilka \[users staff\] som ska listas för \[users members\].

Säg att det finns 10 \[users staff\] men bara tre av dessa ska kunna väljas... Ja, du fattar.

I mitt andra inlägg ovan ville jag att slutresultatet skulle bli så här:

users.x_ID - users.x_firstname - jobX.x_staffID
23 - jakob - \<NULL\>
24 - kalle - \<NULL\>
25 - anna - TRUE
26 - erik - \<NULL\>
27 - örjan - \<NULL\>
29 - eva - \<NULL\>

Eller tänker jag fel?

Permalänk: https://www.webforum.nu/p/353902

## #6 — Eclipse, 2002-03-04T15:49Z

Till alla som kommer efter mig och tycker att OUTER JOIN suger FETT efter att ha läst och testat ovanstående inlägg kan jag ge följande tips till:

SQL = "SELECT **users**.x_ID, **users**.x_firstname, **jobX**.x_ID FROM (\[users\] " \_
& " LEFT OUTER JOIN \[jobX\] ON jobX.x_staffID = users.x_ID );"

Permalänk: https://www.webforum.nu/p/616652

## #7 — Eclipse, 2002-03-04T16:18Z

IsNull

```
SQL = "SELECT users.x_ID, users.x_firstname, jobX.x_ID FROM ([users] " _
& " LEFT OUTER JOIN [jobX] ON jobX.x_staffID = users.x_ID );"

response.write sql & "<BR><BR>"
'on error resume next
set mySQL = Conn.Execute(SQL)
IF NOT mySQL.EOF THEN listData = mySQL.GetRows()

' ## LOOP ALL POSTS
IF IsArray(listData) THEN
myRow = listData
response.write myFont1
FOR j = 0 to UBound(myRow,2)
	FOR i = 0 to UBound(myRow,1)
		response.write i & "," & j & "> " & myRow(i,j) & " " & vbCRLF
	NEXT
	response.write IsNull(myRow(2,j))
	IF NOT j = UBound(myRow, 2) THEN response.write "<BR><BR>"
NEXT
response.write "</FONT>"
END IF
```

Ovanstående kod ger detta resultatet:

0,0\> 3 1,0\> Jakob 2,0\> True

0,1\> 6 1,1\> Lis-Anna 2,1\> True

0,2\> 11 1,2\> Clark 2,2\> True

0,3\> 12 1,3\> Kent 2,3\> True

0,4\> 13 1,4\> Karl 2,4\> True

0,5\> 14 1,5\> Yngwe 2,5\> True

0,6\> 15 1,6\> Palle 2,6\> True

Men det borde inte vara True, eftersom posten inte finns... Attans aber!

Permalänk: https://www.webforum.nu/p/616674

## #8 — @nders, 2002-03-04T17:28Z

> Men det borde inte vara True, eftersom posten inte finns... Attans aber!

Hm. Borde det inte det? Din IsNull() returnerar ju att värdet i fältet är null, dvs ingen post i den 'högra' tabellen matchar joinvillkoret.

```
response.write IsNull(myRow(2,j))
```

Eller har jag tänkt alldeles snett?

Mvh,

Permalänk: https://www.webforum.nu/p/616705

## #9 — Eclipse, 2002-03-04T20:22Z

OK, jag hajjar.

Hur skriver jag för att det ska bli FALSE då?

Permalänk: https://www.webforum.nu/p/616752

## #10 — @nders, 2002-03-04T20:26Z

Du kan ju alltid göra något sånt här:

```
if IsNull(myRow(2,j)) then
response.write "False"
else
response.write "True"
End if
```

Mvh,

Permalänk: https://www.webforum.nu/p/616754

## #11 — Eclipse, 2002-03-04T20:31Z

Jo men då blir det ju en IF sats ju...!!

Det går ju inte! :-)

"\<IMG SRC=""" & myRow(4,j) & ".gif""\>"

\<IMG SRC="true.gif"\>
vs.
\<IMG SRC="false.gif"\>

Jag kan ju inte använda min **supertajta ny-optimerade super-kåd** om jag tvingas till en IF sats... Det känns som Plan B i sammanhanget... men okej, bättre än inget. Höhöhö....

Permalänk: https://www.webforum.nu/p/616756

## #12 — Eclipse, 2002-03-04T20:32Z

Vilken film kommer din footer från denna gången?

Permalänk: https://www.webforum.nu/p/616758

## #13 — @nders, 2002-03-04T21:01Z

Då provar vi detta:

```
"<IMG SRC=""" & Cbool(len("" & myRow(4,j))) & ".gif"">"
```

Angående min signatur: <http://us.imdb.com/Title?0118749>

Mvh,

Permalänk: https://www.webforum.nu/p/616768

## #14 — Eclipse, 2002-03-04T21:21Z

Boogie Nights har jag inte sett och jag förstår att jag måste ta mitt ansvar här. :-)

\-------
Koden funkar inte. Alla blir True.gif.

```
	response.write CBool(len(IsNull(myRow(2,j)))) & ".gif "
	response.write CBool(IsNull(myRow(3,j))) & ".gif "
	response.write CBool(IsNull(myRow(4,j))) & ".gif "
```

Permalänk: https://www.webforum.nu/p/616785

## #15 — @nders, 2002-03-04T21:26Z

Provade du den koden jag gav dig? Alltså den utan isNull()?

Den kod du visar borde alltihop ge True.gif, eftersom både "True" och "False" är längre än 0 tecken.

Mvh,

Permalänk: https://www.webforum.nu/p/616788

## #16 — Eclipse, 2002-03-04T21:33Z

OK, grejt. Det verkar fungera... Jag kan inte testa true men omständigheterna verkar vara positiva... Typ!

Eller nåt.

Permalänk: https://www.webforum.nu/p/616794

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21938-fråga-efter-nåt-som-inte-finns
