06. januar 2003 - 23:04Der er
21 kommentarer og 2 løsninger
Kan man lave 2 JOINs i samme SQL streng?
Hej med jer......
Kan man lave 2 JOINs i samme SQL streng?
Hvordan skal den smides ind her?
Tabellen som skal JOIN'ens hedder Svar, og feltet hedder Svar.ReplyDate og den skal være køre sammen med Posts.Date og den skal sortere dem DESC på din oprettelses dato ......... således at det er Svar.Reply datoen der bliver vidst som det nyeste indlæg i mit forum.
Dim strSQL As String = "SELECT Forum.ForumID, " strSQL += "Posts.ForumID, Posts.Subject, Posts.UserName, Posts.Date, Posts.PostID " strSQL += "FROM Forum INNER JOIN Posts ON Forum.ForumID = Posts.ForumID " strSQL += "WHERE Forum.ForumID ='" & ForumID & "'" & " ORDER BY Posts.PostID DESC"
SELECT Forum.ForumID, Posts.ForumID, Posts.Subject, Posts.UserName, Svar.ReplyDate, Posts.PostID FROM Forum INNER JOIN Posts ON Forum.ForumID = Posts.ForumID INNER JOIN Posts ON Svar.ReplyDate = Posts.Date WHERE Forum.ForumID = '" & ForumID & "' ORDER BY Svar.PostID DESC
Vær opmærksom på at Date er et reserveret ord... Det kan give nogle probs, jeg ville omdøbe det med det samme hvis jeg dig :O)
Som du kan se har jeg skiftet Posts.Date ud med Svar.ReplyDate det betyder teoretisk intet, men det gør selecten lidt nemmere at læse og vedligeholde..
fsconsult.dk--> en union har intet at gøre i det tilfælde der. Det kan ikke engang lade sig gøre at lave en (der er brugbar)
blah.. sorry... det er ms sql... well.. hvis du har adgang til access kan du bruge dens sql query builder, ellers kan jeg anbefale BaseNow, som kan hentes i en 30 dages trial.. den har en god querybuilder
tele lucien: ja naturligvis... INNER JOIN Svar ON Svar.ReplyDate = Posts.Date
husk at denne join skal komme som nummer 2 join, da posts.date ellers ikke eksisterer.... Jeg ville nu nok lige ændre 'Date' til noget andet måske 'ReplyDate'
cyberfessor--> den querybuilder dur sq ikke optimalt, der er et hav af ting man slet ikke kan med den! (jeg kan absolut ikke anbefale den, bedst at lære sin sql ordentligt istedet for et stykke fancy-proggie som kun funker halvt)
janus_007>> selvfølgelig får man den reneste kode ved at skrive det selv... dog kan vi ikke alle være gode til det hele, og du kan sige hvad du vil, men folk der koder i hånden spilder bruger, næsten altid, mere tid end dem der har et værktøj til hjælp. Det er vel ikke uden grund at firmaer tjener mange penge på IDE'er, som gør livet for os programmører 100 gange lette end hvis man skulle side med notepad og en commando-baseret compiler. Det kan godt være at der er nogle ting man ikke kan med den, men så er det i hvert fald ting jeg ikke har haft brug for. Jeg kan basic sql, så længe vi holder os til en tabel, men har aldrig haft problemer med den når der skal joines eller bruge unions i forbindelse med flere tabeller... istedet har jeg sparet en masse tid da man med simpelt drag&drop kan få genereret selv rimelig avancerede queryer jeg aldrig, i min vildeste fantasi, ville have kunne skrive selv.
SELECT Forum.ForumID, Posts.ForumID, Posts.Subject, Posts.UserName, Svar.ReplyDate, Posts.PostID FROM Forum INNER JOIN Posts ON Forum.ForumID = Posts.ForumID INNER JOIN Posts ON Svar.ReplyDate = Posts.Date WHERE Forum.ForumID = '" & ForumID & "' ORDER BY Svar.PostID DESC
Duer ikke fordi (som fejlmeddelelsen også siger) at der er to felter med samme navn i resultatet.
SELECT Posts.ForumID, Posts.Subject, Posts.UserName, Svar.ReplyDate, Posts.PostID FROM Forum INNER JOIN Posts ON Forum.ForumID = Posts.ForumID INNER JOIN Posts ON Svar.ReplyDate = Posts.Date WHERE Forum.ForumID = '" & ForumID & "' ORDER BY Svar.PostID DESC
cyberfessor--> jeg er ikke uenig med dig omkring brugen af IDE's, syntes da også det er fedt med intellisense, autocompletion osv... Men ligegyldigt hvordan og hvorledes er det altid godt at ha en baggrundsviden omkring det der sker.
ps. jeg har tit været ude for at querybuilderen langt fra har kunnet det jeg ville. eks. tablealias, nested selects, updatejoins, variabledeclaration mm.
janus_007>> selvfølgelig... lidt baggrundsviden er god at have, men mon ikke at tele_lucien har det, siden han har fået smidt sql'en sammen som han beskriver i sit spm? ang. de forskellige ting beskriver der må jeg ærligt indrømme at jeg kun kender til tablealiases, så til det behov jeg bruger databaser til kan jeg sagtens klare mig med en querybuilder, og det vil jeg tro at tele_lucien også kan :)
Ja det kender jeg godt, har selv en del bøger derfra. Og har altid været mere eller mindre tilhænger af dem, men med tiden har jeg fået øjnene op for andre forlag også. Og jeg må sige, at ikke alle Wrox bøger er lige gode ;O) Jeg holder eks.vis også af bøger fra Deitel&Deitel og O'Reilly
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.