/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Relationer og Select
Fra : Sinkbæk


Dato : 11-08-02 17:10

Hej!

Jeg er ved at lave en webshop. Jeg har i en MySQL database lavet to
tabeller: hoved_kat og under_kat - disse indeholder varekategorier;
hoved_kat: alle hovedkategorier og under_kat alle underkategorier til
hovedkategorierne. Jeg har i under_kat lavet en kolonne der hedder
hoved_kat_id - der refererer til id'et i hoved_kat. - ok, ved godt det lyder
lidt komplekst

Men, hvordan laver jeg så en SELECT der udvælger kategorierne i rækkefølgen:

hovedkat.
-underkat
-underkat
hovedkat.
-underkat.
osv.
?

--
Med venlig hilsen
Thomas Sinkbæk
www.sinkbaek.com



 
 
wulff (11-08-2002)
Kommentar
Fra : wulff


Dato : 11-08-02 22:56

On Sun, 11 Aug 2002 18:09:58 +0200, "Sinkbæk"
<thomas@--FJERN_DETTE--sinkbaek.com> wrote:
>Jeg er ved at lave en webshop. Jeg har i en MySQL database lavet to
>tabeller: hoved_kat og under_kat - disse indeholder varekategorier;
>hoved_kat: alle hovedkategorier og under_kat alle underkategorier til
>hovedkategorierne. Jeg har i under_kat lavet en kolonne der hedder
>hoved_kat_id - der refererer til id'et i hoved_kat. - ok, ved godt det lyder
>lidt komplekst

Ikke svar på dit spørgsmål, men: Ville det ikke være nemmere at have
alle varekategorier i én tabel? Noget i stil med:

id   int   auto_increment
parent   int   default null
<flere felter>

På den måde kan du nemt lave underkategorier til underkategorier, og
du kan nemt finde alle hovedkategorierne.


/wulff

Sinkbæk (12-08-2002)
Kommentar
Fra : Sinkbæk


Dato : 12-08-02 08:30

> Ikke svar på dit spørgsmål, men: Ville det ikke være nemmere at have
> alle varekategorier i én tabel? Noget i stil med:
>
> id int auto_increment
> parent int default null
> <flere felter>

Hej!

Jo, det har jeg også lavet det om til nu

Men hvordan opbygger jeg så en relation mellem id'et i kategori-tabellen til
ref_id'et i produkttabellen?
Altså:

-kategori-tabel-
*id
parent_id
navn

-produkt-tabel-
id
navn
*kat_ref_id
<masse felter>

-der skal så være relation mellem de to kolonner med *.

--
Med venlig hilsen
Thomas Sinkbæk
www.sinkbaek.com
- Broder Salsa: "København det er altid kokos"




wulff (12-08-2002)
Kommentar
Fra : wulff


Dato : 12-08-02 11:12

On Mon, 12 Aug 2002 09:29:44 +0200, "Sinkbæk"
<thomas@--FJERN_DETTE--sinkbaek.com> wrote:
>Men hvordan opbygger jeg så en relation mellem id'et i kategori-tabellen til
>ref_id'et i produkttabellen?

http://www.mysql.com/documentation/mysql/bychapter/manual_Tutorial.html#example-Foreign_keys


/wulff

Olav M.J. Christians~ (12-08-2002)
Kommentar
Fra : Olav M.J. Christians~


Dato : 12-08-02 09:05

"Sinkbæk" <thomas@--FJERN_DETTE--sinkbaek.com> skrev i en meddelelse
news:aj628j$9om$1@sunsite.dk...
> Men, hvordan laver jeg så en SELECT der udvælger kategorierne i
rækkefølgen:
>
> hovedkat.
> -underkat
> -underkat
> hovedkat.
> -underkat.
> osv.
> ?

Jeg er ikke sikker på at du kan gøre dette med en enkelt select-statement.
Så vidt jeg kan se skal du enten bruge en rapport-generator eller et
proceduralt sprog.

Hvis jeg antager at du bruger et eller andet programmeringssprog til at få
adgang til din MySQL database (ellers ville der ikke være så meget sjov ved
det), så ville en pseudokode se ca. sådan her ud:

- Lav en select statement på den overordnede række, f.eks. SELECT hoved_kat
FROM hoved_kat (har række og tabel det samme navn?)
- Nu kører du en løkke igennem for hvert record set du får ud af dette og i
den gør du følgende:
- Print dit hovedkat ud (på skærm eller hvad du nu skal)
- Lav en ny select statement (med et nyt record set) hvor du laver din join,
f.eks. SELECT under_kat FROM under_kat WHERE under_kat_id = rs1.hoved_kat
- Her printer du så samtlige records du får ud af dette

Bemærk: Ovenstående kode er ikke rigtig kode. Du skal tilpasse det til det
sprog du anvender, f.eks. VBScript eller JScript.

M.v.h.
Olav




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste