30. august 2004 - 23:42Der er
5 kommentarer og 3 løsninger
union af tre selects med uens navne
jeg skal lave en union af selects fra tre tabeller. i hver af dem er der én timestamp-kolonne. de har bare forskelligt navn i hver af de tre tabeller. til sidst skal jeg ordne det hele efter det forenede sæts timestamp kolonne, men hvordan skriver jeg det når denne kolonne har forskelligt navn i hver af de tre tabeller? kan man referere til kolonnen bare som timestamp, eller hvordan gør jeg ellers?
f.eks.:
select besk_id, afsender, titel, text, tid from forum_1 union select txt_id, forfatter, titel, text tid from forum_2 union select poster, headline, text, time, postid from forum_3 order by [timestamp kolonnen, dvs. fra forum_1.tid, forum_2.tid og forum_3.time]
hvad med de øvrige kolonner? er det et problem at tilsvarende kolonner har forskellige navne og at de ikke optræde i samme orden i tabellerne?
Du angiver bare den øverste feltnavn, da det den kolonneoverskrift queryen får. fx: select besk_id, afsender, titel, text, tid from forum_1 union select txt_id, forfatter, titel, text tid from forum_2 union select poster, headline, text, time, postid from forum_3 order by forum_1.tid
er det et problem at tilsvarende kolonner har forskellige navne og at de ikke optræde i samme orden i tabellerne? NEJ, det er feltene i hver kolonne skal har samme datatype.
hvis jeg slutter med order by forum_1.tid vil den så ikke kun sortere rækkerne fra forum_1 ? jeg skal have samlet det hele i ét forenet sæt, og sorteret ud fra dette sæts timestamp kolonne (son hedder "tid" i de to, men "time" i den tredje).
øv! det viser sig at b-one hvor siderne ligger ikke har MySQL 4 men kun version 3.23.58, og så er "UNION" vist slet ikke understøttet. Hvad gør man så?
1) Nej, det er hele alle rækker der bliver sorteret. order by bliver først udført 2) Umiddelbart, tror jeg kun at man kan programmere sig ud af det problem. 3 selects der bliver merged efterfølgende
uffe_kld> ok, jamen så må vi jo over i php kategorien. Jeg vil godt give dig point for svar her, men synes egentlig det er lidt meget med 60 point når problemet slet ikke er løst, så kan vi dele halv/halv - og så kan du jo følge med over i php og se om du kan hjælpe mig videre derfra.
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.