Yaricks Skrevet 21. august 2007 Skrevet 21. august 2007 Hei! Noen som har en løsning på ett spørsmål jeg har her.. Jeg har 2 tables. Table 1: software +---------------------------------------------------+ | ID | Show | Shownr | Title | Text | Date | +---------------------------------------------------+ Table 2: books Akkurat lik.. Det jeg kunne tenke meg er å få hentet ut de 5 siste inleggene fra begge tabellene ut i en fin liten side... Er der noen som vet hvordan man kan gjøre det? /Yaricks
kimla Skrevet 21. august 2007 Skrevet 21. august 2007 Hei! Noen som har en løsning på ett spørsmål jeg har her.. Jeg har 2 tables. Table 1: software +---------------------------------------------------+ | ID | Show | Shownr | Title | Text | Date | +---------------------------------------------------+ Table 2: books Akkurat lik.. Det jeg kunne tenke meg er å få hentet ut de 5 siste inleggene fra begge tabellene ut i en fin liten side... Er der noen som vet hvordan man kan gjøre det? /Yaricks 9331827[/snapback] Kunne du forklart hva du tenker av relasjoner og sånn?
Ernie Skrevet 21. august 2007 Skrevet 21. august 2007 (endret) Det er ikke mulig å hente ut data fra 2 separate tabeller. Derimot synes jeg det virker som designet er mer eller mindre lite gjennomtenkt. I stedet for å splitte opp i flere tabeller kan det være lurt å bruke en diskriminator. I MySQL kan det f.eks være en enum. Endret 21. august 2007 av Ernie
tarquinn Skrevet 21. august 2007 Skrevet 21. august 2007 (endret) Hei! Noen som har en løsning på ett spørsmål jeg har her.. Jeg har 2 tables. Table 1: software +---------------------------------------------------+ | ID | Show | Shownr | Title | Text | Date | +---------------------------------------------------+ Table 2: books Akkurat lik.. Det jeg kunne tenke meg er å få hentet ut de 5 siste inleggene fra begge tabellene ut i en fin liten side... Er der noen som vet hvordan man kan gjøre det? /Yaricks 9331827[/snapback] Prøv dette: SELECT * FROM software ORDER BY Date LIMIT 5 UNION SELECT * FROM books ORDER BY Date LIMIT 5 Krever mysql 5. Endret 21. august 2007 av tarquinn
ZoRaC Skrevet 21. august 2007 Skrevet 21. august 2007 Legg til et felt "type" (med "book"/"software" som gyldige verdier). Da trenger du bare 1 tabell!
Crowly Skrevet 21. august 2007 Skrevet 21. august 2007 Må nok føye meg inn i rekken av at database designet ikke er helt optimalt. En tabell er nok, hvis du legger inn ett type felt som foreslått over så er det bare å bruke WHERE type='ønsket_verdi' til å plukke ut det du trenger. Blir kanskje litt "overkill" i dette tilfellet, men du kan ha to tabeller, hvor du har type_id i hovedtabellen og en egen tabell for type verdier, hvor type_id i hovedtabellen = id i type tabellen. Så gjør du bare noe slikt (trenger finpuss) SELECT t1.felt1,t1.felt2,t1,felt3,t2.type FROM hoved_tab t1, type_tab t2 WHERE t1.type_id = t2.id AND t2.type ='ønsket_verdi' Kan være greit å lese litt om Database Normalization Kort fortalt handler normalisering seg om å effektivisere databasen• unngå redudans i databasen, dvs dobbeltlagring av data • unngå hull i databasen
tarquinn Skrevet 21. august 2007 Skrevet 21. august 2007 (endret) Ja, er enig i at database designet ikke er slik det burde være. Slik burde det være som presisert i posten over: tabell1 +-----------------------------------------------------------+ | ID | Type_ID | Show | Shownr | Title | Text | Date | +-----------------------------------------------------------+ tabell2 +-----------------------+ | Type_ID | Type | +-----------------------+ 1 - Software 2 - Books Bruk så denne setningen for å hente ut de 5 siste postene med type = 'Software'. Eventuelt den forrige løsningen. Jeg foretrekker denne. SELECT t1.*, t2.type FROM tabell1 t1 INNER JOIN tabell2 t2 ON t1.Type_ID = t2.Type_ID WHERE t1.Type_ID = 1 ORDER BY Date LIMIT 5 * Nå er kanskje feltnavnet Date ikke så lurt å bruke. Er ikke det et reservert ord (funksjon) i MySQL? Endret 21. august 2007 av tarquinn
Zeph Skrevet 22. august 2007 Skrevet 22. august 2007 Denne tråden var feilpostet og er blitt flyttet til riktig kategori.
Crowly Skrevet 23. august 2007 Skrevet 23. august 2007 * Nå er kanskje feltnavnet Date ikke så lurt å bruke. Er ikke det et reservert ord (funksjon) i MySQL? Går fint så lenge du setter ` (shift + back slash) rundt, altså `date`. Men kan være greit å venne seg til å ikke bruke reserverte ord.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå