09. august 2001 - 12:15Der er
10 kommentarer og 1 løsning
Kringlet SQL
Jeg har en tabel som er opbygget ud fra dette:
1=>2=>3=>4=>5=>6 (1 er 2 men 2 er ikke 1 osv.)
så i ovenstående er:
1 = 2,3,4,5,6 2 = 3,4,5,6 3 = 4,5,6 4 = 5,6 5 = 6
Min tabel ser sådan ud
Nr1|Nr2 ------- 1 | 2 2 | 3 3 | 4 4 | 5 5 | 6
Nu kommer spørgsmålet så.... Kan man lave en SQL sætning der ud fra tabellen giver det ønskede resultat? Altså en søgning på 1 giver 2,3,4,5,6 og hvis man søger på 3 får man 4,5,6.
Hvis man tilføjer en post der hedder 3=>2 vil den så kunne få flg. resultat:
Undskyld men tag jer lige sammen. Det kunne jeg også selv have lavet, både pascal og asp, skulle det være 250 point værd !!! Desuden løser det jo slet ikke spørgsmålet, som beder om en ren SQL løsning.
Her er lige en stump som løser opgaven men som ikke er optimal og som jeg gerne ville forbedre hvis det er muligt.
select distinct nr2 from tabel1 where nr1=1 or nr1 in ( select distinct nr2 from tabel1 where nr1=1 or nr1 in ( select distinct nr2 from tabel1 where nr1=1 or nr1 in ( select distinct nr2 from tabel1 where nr1=1 or nr1 in ( select distinct nr2 from tabel1 where nr1=1))))
SELECT N1.NR1, N2.NR1, N3.NR1, N4.NR1, N5.NR1 FROM (((NUMRE AS N1 LEFT JOIN NUMRE AS N2 ON N1.NR2 = N2.NR1) LEFT JOIN NUMRE AS N3 ON N2.NR2 = N3.NR1) LEFT JOIN NUMRE AS N4 ON N3.NR2 = N4.NR1) LEFT JOIN NUMRE AS N5 ON N4.NR2 = N5.NR1;
SELECT Tabel1_5.n1, Tabel1_5.n2, Tabel1_4.n2, Tabel1_3.n2, Tabel1_2.n2, Tabel1_1.n2 FROM Tabel1 AS Tabel1_5 LEFT JOIN (Tabel1 AS Tabel1_4 LEFT JOIN ((Tabel1 AS Tabel1_3 LEFT JOIN Tabel1 AS Tabel1_2 ON Tabel1_3.n2 = Tabel1_2.n1) LEFT JOIN Tabel1 AS Tabel1_1 ON Tabel1_2.n2 = Tabel1_1.n1) ON Tabel1_4.n2 = Tabel1_3.n1) ON Tabel1_5.n2 = Tabel1_4.n1 WHERE (((Tabel1_5.n1)=1));
Lavet i Access, det svarer til hvordan man laver en \'træstruktur\' i databasedesign. Noget med node og parrentNode.
Jeg har endnu ikke haft tid til at gennemgå svarene 100% endnu da et haste project kom på banen, det ser dog ud til at det bliver dig (proaccess) der render med guldet.
/NaZaq
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.