11. august 2003 - 15:40Der er
39 kommentarer og 1 løsning
Binde 2 tabeller sammen
Kan man i Mysql binde 2 tabeller sammen. Sådan så jeg kun skal hente fra den ene med php..
Jeg tænkte på at hvis man i en tabel havde adresse og postnr.. og i en anden tabel postnr. & by.. Så kunne jeg godt tænke mig at mysql selv hentede en værdi ind..
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
du kan i andre databaser lave forskellige former for hvad du ønsker, men mysql tilbyder ikke denne service. Er det vigtigt for dig, kan du enten kigge lidt på PostgreSQL der også er Opensource, eller fx MS SQL Server - der dog er peberet i licenser
ljweb> der er da ingen grund til at skifte database for at kunne hente byen til et postnummer fra en anden tabel :) det er der da masser af mulighed for i mysql.
-thomas- >> jeg har forklaret hvorledes han kan det han vil, og såfremt han vil "binde sammen", vil det kræve et view/stored procedure til at gøre det. At det så er dobbeltarbejde, fremfor dét join jeg anbefalede, er en anden snak.
buch >> en join er vejen frem, som du ovenfor har fået skitseret løsningen på. Da du lavede de to tabeller med stamdata i én tabel og post/by i anden, viser du at du ved lidt om database opbygning og normalformer. Eller måske du var heldig ;)
Hvis du ikke ønsker at anvende en join direkte i dit udtræk, må du på serveren lave en eller anden form for funktion, der gør arbejdet "transperent" for dig - det kunne være en "stored procedure" eller fx et "view". mySQL tilbyder ikke de faciliteter - de fokuserer på at levere data hurtigt, og derved udelader de nogle funktioner. Andre databaser er måske ikke lige så hurtige, men fokuserer anderledes, herunder MS SQL Server, PostgreSQL og Oracle.
Jeg anbefaler dig ikke at lave en sådan funktion, men det kan være det virker for dig - det var et alternativ, hvis ikke du ønskede den simple join. That's all
-thomas- >> vend den om - hvorfor er det ikke et dobbelt arbejde, at 1) oprette en funktion og 2) laver en query der henter information ud af denne funktion, når man istedet kan lave en funktion, der henter den samlede information baseret på et join.
som noget helt andet, så ville jeg nok droppe tabellen med post/by referencen, ligge den som et PHP array i en fil, og fra dit kald refere til $POSTBY[$postnr] ... Bynavne er statiske og ændres extremt sjældent. Det vil gøre queryen hurtigere og behovet for en join er forsvundet.
udskift evt mysql_fetch_row med mysql_fetch_assoc, det er nemmere at identificere. og i postnummer tabellen, har jeg omdøbt "by" til "bynavn" - by anvendes af systemet til andre funktioner og må ikke anvendes
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.