Avatar billede morgan_freeman Nybegynder
22. november 2007 - 00:44 Der er 12 kommentarer og
1 løsning

træk fra 2 tabeller og arrangere alfabetisk

Hej

Sikkert meget simpelt, men kunne nogen hinte mig.

Jeg skal sammenkoble udtræk fra 2 tabeller - lad os sige tabel_mand_skuespillere og tabel_kvind_skuespillere - og så skal jeg have hevet det hele ud i struktureret facon (eg. alfabetisk, fødselsdato, whatever).

Hvordan skal/KAN(?) jeg skrue et SELECT statement sammen så jeg får det?

NB. jeg har ikke samme kolonne-titel i de respektive tabeller, så jeg er ude (eg.)
"SELECT * FROM tabel_mand_skuespillere, tabel_kvind_skuespillere ORDER BY '_mand_navn' AND '_kvind_navn'";
.... men det kører overhovedet ikke! What to do?
Avatar billede morgan_freeman Nybegynder
22. november 2007 - 01:15 #1
Alle veje fører til Rom, men hvis nogen vil give mig henvisning til ekstern hjælp, så fandt jeg ikke nok hér: http://dev.mysql.com/doc/refman/5.0/en/select.html. Tror det skal skæres i pap!
Avatar billede terry Ekspert
22. november 2007 - 08:10 #2
SELECT * FROM tabel_mand_skuespillere
UNION
SELECT * FROM tabel_kvind_skuespillere
Avatar billede nielle Nybegynder
22. november 2007 - 08:12 #3
Hvorfor ikke have samtlige skuespillere i samme tabel og så blot udvide med et ekstra felt som angiver om det er en mand eller kvinde. Det giver dig den nemmeste løsning i det lange løb.
Avatar billede terry Ekspert
22. november 2007 - 08:14 #4
SELECT * FROM tabel_mand_skuespillere
UNION
SELECT * FROM tabel_kvind_skuespillere
ORDER BY _mand_navn

NOTE: Column names are taken from 1st select so sort on _mand_navn will sort both selects on that feild
Avatar billede terry Ekspert
22. november 2007 - 08:15 #5
I agree nielle
Avatar billede terry Ekspert
22. november 2007 - 08:24 #6
Avatar billede cortx Nybegynder
22. november 2007 - 11:01 #7
Helt klart - lav én tabel med rækken "gender"/"sex" (køn).. Og træk dem ud hvor gender (eller) sex er lig enten mand/kvinde..

SELECT * FROM tabel_skuespillere WHERE gender='mand' ... :)
Avatar billede morgan_freeman Nybegynder
22. november 2007 - 13:49 #8
OK. Der er ofte gode grunde til at adskille tabeller. I mit eksempel kunne det være, at jeg ville have tonsvis af info om skuespillerinder (fødselsdage, øjen- og hårfarve, masser af thumb's, whatever - mens mændene kunne nøjes med et navnefelt + roleliste-felt). Det ville - ud over at tilføje et helt nyt køn-felt i fælles-tabellen - give en masse unødige NULL's og muligvis besvære mit arbejde med de respektive tabeller. Derfor er jeg nødt til at have to (omend eksemplet er forsimplet).

Jeg kan desværre ikke acceptere jeres svar - men det skyldes sikkert, at jeg ikke har fortalt hele sandheden. Jeg arbejder via Dreamweaver med en php-extension (kaldet; PHAkt) og når jeg anvender ovennævnte SELECT-statement får jeg ikke noget godt ud af det. Øv.

Konceptet er måske, at UNION ikke er direkte tænkt til denne (psudeo-WYSIWYG-) extension i første omgang. Har fundet et link der ser lovende ud, men jeg kan stadig ikke få det til at spille (http://www.interaktonline.com/Products/Free-Products/PHAkt/Product-Forum/Details/100503/how+i+can+merge+2+recordset.html).

Hvis nogen kan rådgive yderligere nærmere er jeg stadig meget interesseret.
Avatar billede morgan_freeman Nybegynder
22. november 2007 - 14:02 #9
OK. Call off the proverbial hounds.

Det jeg tilsyneladende skulle have med (altså i Dreamweaver/PHAkt regi) er noget ALIAS-halløj for at kunne anvende det i print/udtræk.
Mit statement ser nu således ud:

"SELECT * AS skuespiller FROM tabel_mand_skuespillere 
UNION 
SELECT * AS skuespiller FROM tabel_kvind_skuespillere
ORDER BY skuespiller ASC";

Det spiller. Altså tillader jeg mig at æde mine egne point (og ikke min gamle hat). Håber ikke, at nogen føler sig snydt.
Avatar billede morgan_freeman Nybegynder
22. november 2007 - 14:05 #10
Nej sgu! Rimeligheden må vel bestå i at UNION er det fundamentale træk. Jeg havde selv luret på det, men det spillede ikke. ALIAS er nødvendig, men måske kun i Dreamweaver - og det havde jeg jo ikke fortalt.

Terry >> du har sgu fortjent den lille formue der er på vej :-)
Avatar billede terry Ekspert
22. november 2007 - 14:05 #11
:o)

tak
Avatar billede nielle Nybegynder
22. november 2007 - 15:31 #12
22/11-2007 13:49:29> De problemstillinger du nævner der, er den slags data som man normalt ville skille ud i form af ekstra tabeller som man så efterfølgende joiner med person-tabellen når man har brug for det. :^)
Avatar billede morgan_freeman Nybegynder
23. november 2007 - 23:13 #13
Der er fordele og ulemper. Jeg kunne have en sekundær tabel der så hed øjenfarve. Den kunne jeg knytte til de poster hvor det er nødvendigt (skuespillerinder) og 'joine' med primærtabellen.
Istedet fortrækker jeg, at have felter i den primære tabel (skuespiellerinder), hvor jeg lettere kan anføre deskriptive variationer (eg. "rød-grønne øjne med tendens til skævhed på det højre øje"). Den type information jeg skal bruge i de respektive tabeller vil mest ligne det sidste og jeg kan derfor ikke se for mig, at have en serie sekundære tabeller med så individuelle noter.

Fordelen er, at selvom der ikke nødvendigvis vil forefindes 2 identiske poster om øjenfarve, kan jeg stadig søge efter forekomst af nøgleord - uden overhovedet at skulle blande mandetabellen ind i sagen.

I denne skuespiller-case ville en oplagt sekundær tabel være produktionsselskab eller filmtitler. De informationer som kan genanvendes til flere primær-poster og som ikke er tilnærmede værdier - og det er også min hensigt at arbejde med sådanne. Men jeg ser ikke noget godt argument (endnu) for at droppe princippet med 2 primære tabeller der har lige så mange forskelle som ligheder - og som ofte vil blive redigeret og søgt i hver for sig.
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