/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] Find resultat uanset om der er en ~
Fra : Burns


Dato : 30-04-04 12:00

Jeg har en WHERE hvor jeg gerne vil have et output selv om en given række
ikke findes.
Jeg har følgende (teoretiske) tabeller:

A:
no, idx, field
1, 3, "mig"
2, 5, "mig"

B:
no, idx, field
1, 2, "car"
2, 5, "dette er en test"

SELECT A.no, A.field, B.no, B.field FROM A, B WHERE A.field = "mig" AND
A.idx = B.idx

Dette returnere ingenting, da A.idx.3=B.idx.3 ikke findes. Men jeg vil
stadigt gerne returnere følgende:

[null], 45, [null], [null]
2, 45, 2, "dette er en test"

Dvs. at hvis værdien ikke findes, skal den blot returnere 0 eller NULL. Lidt
a'la følgende phseudo kode:

SELECT A.no, A.field, B.no, B.field FROM A, B WHERE A.field = "mig"
(AND-EVEN-IF-NOTEXIST A.idx = B.idx)

Kan man det?



 
 
Jens Gyldenkærne Cla~ (30-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 30-04-04 12:43

Burns skrev:

> SELECT A.no, A.field, B.no, B.field FROM A, B WHERE A.field =
> "mig" AND A.idx = B.idx

Kig på LEFT JOIN:

SELECT A.no, A.field, B.no, B.field
FROM A LEFT JOIN B ON A.idx = B.idx

> Dette returnere ingenting, da A.idx.3=B.idx.3 ikke findes. Men
> jeg vil stadigt gerne returnere følgende:
>
> [null], 45, [null], [null]

Du vil nok nærmere få

   3, 45, NULL, NULL
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Burns (30-04-2004)
Kommentar
Fra : Burns


Dato : 30-04-04 13:11

> Kig på LEFT JOIN:
> SELECT A.no, A.field, B.no, B.field
> FROM A LEFT JOIN B ON A.idx = B.idx

Tak, det fungere helt perfekt. Nu skal jeg bare lige have fundet ud af hvad
det rent faktisk betyder men det kan en SQL manual sikker hjælpe med; "LEFT
JOIN"



Jens Gyldenkærne Cla~ (30-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 30-04-04 13:43

Burns skrev:

> Tak, det fungere helt perfekt. Nu skal jeg bare lige have
> fundet ud af hvad det rent faktisk betyder men det kan en SQL
> manual sikker hjælpe med; "LEFT JOIN"

Hvis du slår op i BOL, kan du finde en del om de forskellige join-
typer.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177493
Tips : 31966
Nyheder : 719565
Indlæg : 6408479
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste