Avatar billede mik789 Nybegynder
30. august 2004 - 23:42 Der 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?
Avatar billede uffe_kld Nybegynder
31. august 2004 - 00:41 #1
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
Avatar billede uffe_kld Nybegynder
31. august 2004 - 00:48 #2
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.
Avatar billede mik789 Nybegynder
31. august 2004 - 07:39 #3
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).
Avatar billede mik789 Nybegynder
31. august 2004 - 08:21 #4
ø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å?
Avatar billede uffe_kld Nybegynder
31. august 2004 - 10:17 #5
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
Avatar billede mik789 Nybegynder
31. august 2004 - 12:26 #6
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.
Avatar billede uffe_kld Nybegynder
01. september 2004 - 09:52 #7
Det lang tid siden, jeg har arbejdet med PHP, så det vil tage mig for lang tid.
Avatar billede mik789 Nybegynder
01. september 2004 - 09:54 #8
ok, da
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