Avatar billede compilos Nybegynder
09. november 2006 - 13:40 Der er 7 kommentarer og
2 løsninger

Joins, MSSQL

Hvordan hiver jeg en række ud så den bliver

10, 09, "ThisValue"

Tabellen kunne sådan ud !
MinTestTabel
Testid    ParentID    GetThisValue
10      09            null
09      08          “THISVALUE”
Avatar billede compilos Nybegynder
09. november 2006 - 13:46 #1
Glemte at sige at man kan "parre" TestID og ParentID
Avatar billede arne_v Ekspert
09. november 2006 - 13:48 #2
SELECT mtt1.testid,mtt1.parentid,mtt2.getthisvalue
FROM mintesttabel mtt1,mintesttabel mtt2
WHERE mtt1.parentid = mtt2.testid
Avatar billede lorentsnv Nybegynder
09. november 2006 - 13:50 #3
Hvor mange nieau af parent child skal du bruge. Nedenstående bør kunne give dig ønsket resultat lige i dette tilfælde, men sql'en kan blive væsentlig mere kompleks, hvis du har mange niveau af parent/child.

Select c.Testid as Child, p.Testid Parent, p.GetThisValue
from MinTestTabel p
left join MinTestTabel c
on c.Testid = p.ParentID
where p.GetThisValie is not null
Avatar billede compilos Nybegynder
09. november 2006 - 14:16 #4
øhh, - der er ikke nogen der virker som det skal !

Jeg vil gerne selecte der hvor der står 10 i TestID. Men samtidig vil jeg også gerne ha´ "ThisValue" med fra hvor ParentID er = TestID
Altså jeg skal bruge værdien"ThisValue" fra den Foregående POST.

Så min række jeg får ud bliver !

10, 09, "ThisValue"

/Er jeg dårlig til at forklar! :-)
Avatar billede arne_v Ekspert
09. november 2006 - 21:18 #5
det virker ellers fint her

1> DROP TABLE mintesttabel
2> GO
1> CREATE TABLE mintesttabel (
2>    testid INTEGER PRIMARY KEY,
3>    parentid INTEGER,
4>    getthisvalue VARCHAR(50)
5> )
6> GO
1>
2> INSERT INTO mintesttabel VALUES(10,9,NULL)
3> GO
(1 row affected)
1> INSERT INTO mintesttabel VALUES(9,8,'THISVALUE')
2> GO
(1 row affected)
1>
2> SELECT * FROM mintesttabel
3> GO
testid      parentid    getthisvalue
----------- ----------- --------------------------------------------------
          9          8 THISVALUE
          10          9 NULL

(2 rows affected)
1>
2> SELECT mtt1.testid,mtt1.parentid,mtt2.getthisvalue
3> FROM mintesttabel mtt1,mintesttabel mtt2
4> WHERE mtt1.parentid = mtt2.testid
5> GO
testid      parentid    getthisvalue
----------- ----------- --------------------------------------------------
          10          9 THISVALUE

(1 row affected)
1>
2> DROP TABLE mintesttabel
3> GO
Avatar billede compilos Nybegynder
10. november 2006 - 10:59 #6
Super, - læg et svar begge 2 !
Avatar billede arne_v Ekspert
10. november 2006 - 14:43 #7
svar
Avatar billede lorentsnv Nybegynder
10. november 2006 - 22:55 #8
:-)
Avatar billede compilos Nybegynder
11. november 2006 - 09:46 #9
Tak for hjælpen !
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
Computerworld tilbyder specialiserede kurser i database-management

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