Avatar billede webt Nybegynder
12. september 2007 - 21:08 Der er 10 kommentarer og
1 løsning

Seneste post fra to tabeller

Nok meget simpelt spørgsmål, men ved at være godt sløv så...

har to tabeller (forenklet)

tabel 1
emne_id | dato | emne

tabel 2
svar_id | emne_id | dato| svar

Jeg vil udtrække alle emner fra tabel 1 sorteret efter dato for seneste aktivitet, dvs sorteret efter både tabel 1 og 2 - alle emne_id fra tabel 1 er ikke nødvendigvis i tabel 2
Avatar billede kalp Novice
12. september 2007 - 21:13 #1
select tabel1.emne_id, table1_dato, emne, svar
from tabel1, tabel2
where tabel1.emne_id = tabel2.emne_id
order by tabel1.dato, tabel2.dato


du kan lige prøve sådan.. muligvis brokker den sig over order by, men ja prøv
Avatar billede kalp Novice
12. september 2007 - 21:15 #2
select tabel1.emne_id, table1_dato,table2.dato as datoto, emne, svar
from tabel1, tabel2
where tabel1.emne_id = tabel2.emne_id
order by tabel1.dato, datoto
Avatar billede webt Nybegynder
12. september 2007 - 22:26 #3
ovenstående vil så vidt jeg lige kan se uden test ikke hive noget ud hvis det ikke findes i tabel 2

men vender lige tilbage i morgen... er totalt død nu :D
Avatar billede kalp Novice
12. september 2007 - 22:33 #4
hvis ikke så skal der bare laves lidt om i join delen, men se om det fungerer i morgen;)
Avatar billede webt Nybegynder
13. september 2007 - 08:19 #5
Pt har jeg denne

SELECT * FROM indlaeg
RIGHT JOIN emne ON indlaeg.emne_id=emne.emne_id
GROUP BY emne.emne_id
ORDER BY indlaeg.oprettelse, emne.oprettelse
DESC

Hvilket jeg synes burde virke... men så heldig er jeg ikke :D
Avatar billede kalp Novice
14. september 2007 - 16:57 #6
fik du prøvet nr. 2 forslag?
jeg er opmærksom på problemstillingen med, at rækker ikke bliver returneret hvis der mangler resultat i den ene tabel, men den kan vi tage bagefter.

Det er mere om funktionaliteten er der og det tror jeg den er.
Avatar billede webt Nybegynder
16. september 2007 - 11:29 #7
Altså forslag nr 2 er jo det samme som en join.... så derfor vil der kun komme med fra dem som er i begge tabel...
Havde glemt en DESC i min egen,
SELECT * FROM indlaeg
RIGHT JOIN emne ON indlaeg.emne_id=emne.emne_id
GROUP BY emne.emne_id
ORDER BY indlaeg.oprettelse DESC, emne.oprettelse
DESC
Og det virker nogenlunde, alt kommer med, dog bliver det ikke sorteret helt korrekt lige gyldigt hvad tager en af dem over, dvs selvom der i emne findes en der er nyere end i indlaeg så kommer den efter et par indlæg
Avatar billede kalp Novice
16. september 2007 - 11:41 #8
hvis din egen virker næsten og det er dato felter begge to så skal du vel bare bytte om på dem

ORDER BY indlaeg.oprettelse DESC, emne.oprettelse
DESC

til

ORDER BY emne.oprettelse
DESC, indlaeg.oprettelse  DESC

og ellers blot

ORDER BY emne.oprettelse, indlaeg.oprettelse  DESC
Avatar billede webt Nybegynder
07. november 2007 - 14:06 #9
Sorry, kom helt væk fra den her

Fik ordnet det, så smid et svar :)

Mvh
Martin
Avatar billede kalp Novice
07. november 2007 - 14:48 #10
:)
Avatar billede webt Nybegynder
07. november 2007 - 14:57 #11
Så blev den lukket - ikke sådan når man har travlt

Fortsat god dag
/Martin
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