Avatar billede jalaba Nybegynder
22. november 2007 - 18:28 Der er 5 kommentarer og
1 løsning

Koble data i to forskellige tabeller sammen

Jeg har en tabel(#1) med titel osv og en tabel(#2) med tekst der passer til den pågældende række i den anden tabel.

Nu vil jeg så koble dem sammen, og det er ikke godt nok med et felt der hedder "tekst_id" i tabel #1, da jeg nogle gange også vil gå den anden vej, og så hente ALLE rækker i tabel #2 der har noget med en bestemt række i #1 at gøre.

Grunden til, at jeg ikke bare både kan skrive titel i tabel #1 og tabel #2, og så når jeg skal hente alle rækker ud i tabel #2, så bare hente på titlen, er at jeg nogle gange vil omdøbe titlen, og så bliver det lidt voldsomt, at gøre det på ALLE rækker.

Så jeg tror det er smartere, at lave en tabel med alle relationerne. Men problemet er så bare, at når jeg henter en række ud fra tabel #1, så vil jeg gerne have den NYESTE tekst i tabel #2, og så ved jeg ikke hvordan jeg længere skal gøre :D

Nogle med nogle forslag?
Avatar billede coderdk Praktikant
22. november 2007 - 22:10 #1
tabel1:
id auto_increment
titel varchar(100)

tabel2:
id auto_increment
tabel1_id int
tekst

hent alle der hører sammen:
select * from tabel1 as t1 inner join tabel2 as t2 on t1.id = t2.tabel1_id

kan du se pointen? :)
Avatar billede coderdk Praktikant
22. november 2007 - 22:11 #2
evt med timestamps i de forskellige hvis du har brug for at kunne sortere på nyeste af de forskellige i andre udtræk ;P
Avatar billede jalaba Nybegynder
23. november 2007 - 19:53 #3
Jeg har vist ikke forklaret mig godt nok. Jeg kan godt finde ud af at koble to tabeller sammen, men problemet er jo, at jeg vil hente dem frem begge veje. Så jeg tror det er smartest at lave en hel ny tabel, der skaber relationerne til hinanden. Men så ved jeg bare ikke hvordan jeg skal vise den nyeste.

Jeg synes det er en lidt dårlig metode, at bruge "ORDER BY date DESC LIMIT 1".
Avatar billede coderdk Praktikant
23. november 2007 - 20:13 #4
Jeg er ikke med på hvad du mener med at hive dem frem begge veje?

Det er kun nødvendigt at bruge endnu en tabel, hvis der er tale om en mange-til-mange relation mellem de to tabeller. For mig lyder det som en en-til-mange og så er de to nok. Måske skal du give et eksempel på hvad du vil?

Erh, jeg er nysgerrig: Hvorfor synes du at det er en dårlig metode at finde den nyeste record på?
Avatar billede jalaba Nybegynder
24. november 2007 - 11:28 #5
Jeg har en tabel med nogle nyheder, men disse nyheder skal kunne redigeres - men for ikke at slette det gamle indhold, så skal den blot oprette en 'ny version', og lade den gamle version fortsat eksistere.

Så hidtil har jeg jo blot i min tabel #1 haft et felt der hed "tekst_id", og så hentet teksten ud fra dette. Men jeg vil jo gerne se hvilke tekster der hører til hvilken række i tabel #1, og så er det jo nødvendigt, at jeg kan skaffe ID'et på rækken begge veje.

Var det forståligt? :D
Avatar billede jalaba Nybegynder
24. november 2007 - 14:24 #6
nå jeg lukker
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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