Avatar billede kapoou Nybegynder
22. september 2003 - 18:38 Der er 10 kommentarer

sql join

Jeg har 2 tabeller som jeg gerne vil have slået sammen med en join. Samtidigt skal jeg sortere i rækkefølgen i dem udfra en tabel som de begge har der hedder "sorter".

ex.

Tabel1:
Tab1ID
T1_Navn
T1_Nummer
formID
sorter

Tabel2:
Tab2ID
T2_Navn
T2_Nummer
formID
sorter

Samtidig skal de have et bestemt formID som bliver ført med hen på siden via et link. Det formID er det samme for begge tabeller.

Hvordan ser den JOIN ud ?
Avatar billede arne_v Ekspert
22. september 2003 - 18:47 #1
Formentlig noget i retning af:

SELECT * FROM Tabel1 JOIN Tabel2 ON Tabel1.formID=Tabel2.formID
ORDER BY Tabel1.sorter;
Avatar billede eagleeye Praktikant
22. september 2003 - 18:48 #2
Sådan her?

SQL = "SELECT * FROM Tabel1 INNER JOIN Tabel2 ON Tabel1.formID=Tabel2.formID WHERE Tabel1.formID = " & formID & " ORDER BY Tabel1.sorter, Tabel2.sorter"
Avatar billede kapoou Nybegynder
22. september 2003 - 18:55 #3
Af en eller anden grund så tager den ikke data med fra tabel 1?!
Mht. sorteringen så kan det være at den første i sorteringsrækken ligger i tabel2 og den næste så ligger i tabel1 osv.
Avatar billede eagleeye Praktikant
22. september 2003 - 18:57 #4
Har du prøvet begge?
Du kan bytte rundt i ORDER BY så den først sortere på Tabel2:
ORDER BY Tabel2.sorter, Tabel1.sorter"
Avatar billede kapoou Nybegynder
22. september 2003 - 19:05 #5
ja jeg har prøvet begge. Arne_v's kommer med en fejl. Og den du har shrevet tager kun det med som står på den plads som jeg har betegnet som tabel2. Sorteringen skal gerne fungere så den går ind og sorterer på begge tabeller på samme tid. Alle numrene i de kolonner vil være unikke.

fx. At der først kommer en post fra table1 fordi der er en post der med sorteringsnummer 1. Derefter kommer der måske en post fra table2 fordi der er en post der med sorteringsnummer 2 osv. Jeg ved ikke om det kan lade sig gøre?!
Avatar billede eagleeye Praktikant
22. september 2003 - 19:10 #6
Det lyder mere som om du er ude efter en UNION.
Hvordan ønsker du dit recordset skal se ud?

POST 1 FRA tabel1
POST 4 FRA tabel2
POST 3 FRA tabel1

eller

POST 1 FRA tabel1 JOIN'ET POST 4 FRA tabel2
POST 1 FRA tabel1 JOIN'ET POST 2 FRA tabel2
Avatar billede kapoou Nybegynder
22. september 2003 - 19:16 #7
Nok den første hvor man så går ind og soreterer udfra en fælles kollonne der hedder "sorter"
Avatar billede eagleeye Praktikant
22. september 2003 - 19:26 #8
En union kan se sådan her ud:


SQL = "SELECT * FROM (SELECT Tabel1.Tab1ID as ID, Tabel1.T1_Navn as Navn, Tabel1.formID, Tabel1.sorter FROM Tabel1 UNION ALL SELECT Tabel2.Tab2ID as ID, Tabel2.T2_Navn as Navn, Tabel2.formID, Tabel2.sorter FROM Tabel2) as t1 WHERE t1.formID = " & formID & "  ORDER BY sorter DESC;"

Set rs = Conn.Execute (SQL)
do while not rs.EOF
  response.Write rs("id") & " " & rs("navn") & "<br>"
  rs.Movenext
loop
Avatar billede kapoou Nybegynder
23. september 2003 - 20:23 #9
Jeg kan ikke få den der UNION til at fungere. Jeg fatter det ikke. Nu har jeg sgu snart prøvet alt! :-)
Avatar billede eagleeye Praktikant
24. september 2003 - 23:40 #10
;) så prøv at vise den (PS. Er først tilbage lørdag)
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