Avatar billede truthorn Nybegynder
26. januar 2003 - 22:20 Der er 2 kommentarer

JOIN-spørgsmål

Jeg sidder og arbejder hårdt på at gennemskue JOIN ordentligt....Her er mine tabeller

PRODUKTER:
produkterid (Primær, auto-increement)
produkternavn

KUNDER:
kunderid (Primær, auto-increement)
kundernavn

KUNDERPRODUKTER:
kunderid (Primær)
produkterid (Primær)

MODULER: (dette er de enkelte moduler indenfor det enkelte produkt)
modulerid (Primær, auto-increement)
produktid (fremmednøgle fra "PRODUKTER")
modulernavn

KUNDERMODULER: (hvilke moduler indenfor de enkelte produkter har kunden adgang til)
kunderid (fremmednøgle fra "KUNDER")
produktid (fremmednøgle fra "PRODUKTER")

-----------------
FORMÅL:
(Jeg laver tingene i PHP/MySQL). I sidste ende vil jeg for én kunde se alle produkter og de dertilhørende moduler, og se,

hvorvidt de har modulet eller ej!

DVS.....for kunde: "TESTKUNDE" (eksempel)

produkt 1: "crmsystem"
modul a JA
modul b NEJ
modul c JA

produkt 2: "CMS-system"
modul a NEJ
modul b JA

-----------------

Jeg er foreløbig nået frem til følgende, hvorefter jeg nu kan se kundens produkter, men hvordan får jeg koblet modulerne på....er det her helt galt - kan det bruges - eller....som I ser, så er jeg lidt på herrens mark....håber, at I kan hjælpe

-----------------

$res = mysql_query("
SELECT *

# Alle produkter
FROM produkter

# Hvilke produkter har den givne kunde
LEFT JOIN kunderprodukter
ON produkter.produkterid=kunderprodukter.produkterid

# Kundeinformationer
LEFT JOIN kunder
ON kunder.kunderid=kunderprodukter.kunderid

WHERE kunderprodukter.kunderid='$id'

");

-----------------
Avatar billede _darkstar_ Nybegynder
26. januar 2003 - 22:37 #1
SELECT ISNULL(produktid) AS har_produkt, *
FROM produkter
NATURAL JOIN kunderprodukter
RIGHT JOIN kunder
ON kunder.kunderid=kunderprodukter.kunderid
WHERE kunderprodukter.kunderid='$id'
Avatar billede _darkstar_ Nybegynder
26. januar 2003 - 22:38 #2
Den returnerer stort set det som du spørger om hvor feltet har_produkt indeholder 0 hvis kunden ikke har det og 1 hvis vedkommende har det.
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
Computerworld tilbyder specialiserede kurser i database-management

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