Avatar billede mac10 Nybegynder
02. maj 2009 - 00:01 Der er 7 kommentarer og
1 løsning

Udskrive data fra 2 forskellige tabeller? (MYSQL)

Godaften allesammen og håber i har en god 1. Maj, og ikke sidde og tumler PHP som jeg gør.

Ser i, jeg har nogle data fra 2 forskellige tabeller som jeg gerne vil have til at blive skrevet ud som var de i én.

Rent hypotetisk
Forestil jer vi har en tabel der hedder "mænd" og en der hedder "kvinder". Hvis jeg vil udskrive alle mænd sorteret efter "dato" som er en datetime så er det jo lige til.

Men hvad gør jeg hvis jeg gerne vil have udskrevet både mænd og kvinder efter dato på én gang?

Lad os sige vi har:

Mænd
navn - dato
------------
John - idag
Morten - igår
Anders - i forgårs

Kvinder
navn - dato
------------
Lise - idag
Anne - igår
Camilla - i forgårs

Hvordan får jeg den til at udskrive det således:
John - idag
Lise - idag
Morten - igår
Anne - igår
Anders - i forgårs
Camilla - i forgårs

Håber i forstår hvad jeg mener og på forhånd mange tak :)
Avatar billede erikjacobsen Ekspert
02. maj 2009 - 00:07 #1
Du laver din struktur om så du har een tabel med felterne navn,dato og køn. Det er generelt usmart at have to tabeller med samme struktur...
Avatar billede acore Ekspert
02. maj 2009 - 00:11 #2
Eller - hvis du af en eller anden grund ikke vil følge det råd -du samler de to tabeller med en UNION.
Avatar billede mac10 Nybegynder
02. maj 2009 - 00:11 #3
Hej Erik,

Jeg ved det, og det eksempel jeg giver ville også være fuldstændig dumt at lave - og det er heller ikke tilfældet. Men landet ligger sådan at jeg bygger på et system som har flere forskellige profiler. Forestil dig et bilmarked hvor man kan oprette sig som både forhandler og privat. Og da forhandler skal have mange flere informationer så adskiller man det i 2 forskellige tabeller for ikke at efterlade en masse tomt.

Og det er her jeg står nu. Jeg har 2 tabeller med forskellige informationer som har en masse tilfældes som titel, billede osv. som jeg skal have flettet sammen.

Det er et system som allerede er færdigt og kører, men jeg skal udskrive denne liste og det er her problemet er. Kan huske en af mine gamle kollegaer fik lavet sådan en "mysql fletning" da han skulle udarbejde noget rod for en anden programmør på et projekt - Også her hvor jeg står.

Så aner ikke hvad jeg gør ved det....
Avatar billede erikjacobsen Ekspert
02. maj 2009 - 00:19 #4
Der er flere måder - men du har tilsyneladende noget fælles information for forhandler og privat. Du kan putte det i en fælles tabel, med markering om det er forhandler eller privat. De specifikke ting for en forhandler kan så ligge i en anden tabel, og de specifikke ting for en privat i en tredie tabel.

Men der er andre muligheder. En UNION som acore foreslår er een af dem.

Jeg kan ikke rådgive dig hvad der er bedst, ud fra de givne oplysninger.
Avatar billede mac10 Nybegynder
02. maj 2009 - 00:39 #5
Jeg har lavet en UNION som virker perfekt - puha - det længste MYSQL kald jeg har lavet, da der også er 3 LEFT JOIN i hver.

Nu udskriver de det hele, men ikke sorteret efter dato, men det ene først, og så det andet bagefter. Har i nogle idéer til hvordan jeg mikser datoerne sammen?
Avatar billede mac10 Nybegynder
02. maj 2009 - 00:43 #6
Så er den fikset :) Tusind tak for hjælpen gutter. Nøgleordet var "UNION", hvilket jeg faktisk ikke kendte til, men det virker kun hvis man prøver.

Smæk et svar og rigtig god aften til jer begge :)
Avatar billede acore Ekspert
02. maj 2009 - 08:17 #7
Enig med Erik.

Det er ikke så tit man har brug for UNION, men når man har, er det ofte noget, som ikke kan laves på anden vis.
Avatar billede erikjacobsen Ekspert
02. maj 2009 - 08:25 #8
Nej tak til point.
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