mysql_query - sorting med 2 tabeller?

Tags:    php

<< < 12 > >>
Hejsa ...

Jeg har 2 tabeller som ser sådan her ud:

TABEL 1:
- Name (varchar)
- Deadline (date)

TABEL 2:
- Name (varchar)
- Deadline (date)

Det jeg vil, er sådan set bare at vise de næste 5 deadlines ...


Håber i forstår, ellers må i lige spørge :P
- På forhånd tak for hjælpen



13 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Men så ville det jo også være smartest at gøres ligesom Brian Hvarregaard foreslår.
Hvis du laver et felt mere i tabellen der angiver type/projekt, så kan du altid nøjes med at hente den ene type ud frem for den anden.

Og når de ligger i samme tabel er det jo ingen problem at tage de fem nyeste :)



Med mindre der er tale om to fundamentalt forskellige tabeller, men forskellige kolonnenavne og antal kolonner så MÅSKE kan du flytte det ud i to tabeller, alternativt hvis der er tale om den samme semantiske betydning, er det hul i hovedet at have to tabeller. IMHO.


(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



Er ikke sikker på det kan lade sig gøre men ellers burde det være noget i retning af, Jeg tvivler stærkt på at det kan lade sig gøre :)

SELECT t1.name,t1.deadline,t2.name,t2.deadline FROM Tabel1 AS t1,Tabel2 AS t2 LIMIT 5
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



Hvorfor er det delt ud i to tabeller, ville det ikke være mere korrekt at have dem i een tabel, med en nøgle angående deres tilhørsforhold? Det er jo ens!

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



For at vise de seneste fem deadlines (hvis jeg da ikke misforstår) kan du:
Fold kodeboks ind/udKode 


dvs. bruge limit.
Men det ville nok være en god ide at indeksere disse deadlines med et id, i så fald at du vil sortere dem.



Hvorfor er det delt ud i to tabeller, ville det ikke være mere korrekt at have dem i een tabel, med en nøgle angående deres tilhørsforhold? Det er jo ens!

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto


Hehe det er også mere i tabellerene end det, det var bare for at opstille et simpelt eksempel .. Det er fordi jeg er igang med at lave en system med projekter, deadlines mm. det er 2 forskellige slags projekter som ikke kan ligge i samme tabel. ;P



Ved dette ikke kan lade sig gøre, men du jeg gerne vil frem til er en funktion som kan:

mysql_query("Select deadline from tabel_1 and tabel_2 order by deadline desc limit 5");



Men så ville det jo også være smartest at gøres ligesom Brian Hvarregaard foreslår.
Hvis du laver et felt mere i tabellen der angiver type/projekt, så kan du altid nøjes med at hente den ene type ud frem for den anden.

Og når de ligger i samme tabel er det jo ingen problem at tage de fem nyeste :)


Jamen det kan slet ikke gøres så enkelt .. Kan ikke forklare hurtigt hvordan det hænger sammen, men der må da findes en måde man kan gøre det på :P?

Man kunne jo fx tage de 5 seneste fra hver tabel, smide dem ind i en midlertidig tabel og hente dem ud med "sort by deadline desc", og så slette dem igen .. det må bare kunne gøres nemmere :P?

[Redigeret d. 19/07-05 14:08:54 af Kasper Nielsen]



Med mindre der er tale om to fundamentalt forskellige tabeller, men forskellige kolonnenavne og antal kolonner så MÅSKE kan du flytte det ud i to tabeller, alternativt hvis der er tale om den samme semantiske betydning, er det hul i hovedet at have to tabeller. IMHO.


(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto


Det er to fundamentalt forskellige tabeller, med forskellige kolonnenavne og antal kolonner ;P



du henter begge tabeller med

(Select * from tabel1) Union (Select * from tabel2)

Ved så bare ikke om du kan smække en parantes mere på..

((Select * from tabel1) Union (Select * from tabel2)) Order by deadline limit.....
Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk



<< < 12 > >>
t