Avatar billede diz Nybegynder
05. juli 2006 - 14:28 Der er 8 kommentarer

Sammenkædning af 3 tabeller

Hejsa,

Jeg sidder med et mindre mysql problem. Jeg har følgende 3 tabeller:

EVENTS:
- uid
- pageid
- dato

PAGES
- uid
- title

STATUS:
- eventid
- status
- dato

Nu skal jeg så have rows som indeholde:

- Dato for event
- EventID
- Titel på event (kommer fra pages.title)
- Status på event (her skal den tage den nyeste dato fra statustabellen)
- Dato for status (data fra samme row som ovenfor)

Jeg har fået det første på plads som:
SELECT from_unixtime( results.endtstamp, '%Y%m%d' ) AS dato, results.uid AS eventid, pages.title AS event
FROM results, pages
WHERE results.pid = pages.uid

Dette fungere fint, men hvordan fanden får jeg den sidste del på? Dette skal også virke selv om der ikke er nogen "status" for et event.

/Sune
Avatar billede overload.dk Nybegynder
05. juli 2006 - 14:38 #1
Der skal du bruge INNER JOIN
Avatar billede overload.dk Nybegynder
05. juli 2006 - 14:38 #2
vrøvl.. LEFT JOIN
Avatar billede overload.dk Nybegynder
05. juli 2006 - 14:40 #3
eksempel

SELECT felt1, felt2, felt3
FROM tabelA
LEFT JOIN tabelB
ON tabelA.subId = tabelB.id
Avatar billede diz Nybegynder
05. juli 2006 - 14:41 #4
kan du kommer med et exempel? Kan ikke lige gennemskue hvordan jeg skal lave et INNER JOIN på 3 tabeller.

/Sune
Avatar billede diz Nybegynder
05. juli 2006 - 14:46 #5
LEFT JOIN giver mig stadug kun data fra de første 2 tabeller. Mangler stadig data fra statustabellen.

/sune
Avatar billede overload.dk Nybegynder
05. juli 2006 - 14:47 #6
har lidt svært ved at finde ud af din sql, da jeg ikke kan se hvor results.endtstamp, results.uid kommer fra
Avatar billede overload.dk Nybegynder
05. juli 2006 - 14:50 #7
prøv at list dine tabeller, og deres kolonner, så kan det være jeg bedre lige kan stykke det sammen
Avatar billede diz Nybegynder
05. juli 2006 - 15:02 #8
min fejl results tabellen er den samme som eventstabellen.

Altså

Results
-------
uid
pid
begintstamp
endtstamp


Pages
-----
uid
title


Status
------
uid
eventid
status
subject
freetext


- Status.eventid referere til et uid i results
- results.pid referer til et uid i pages

Jeg skal have rækker som indeholder:
- dato for event (fra results)
- id for event (fra results)
- navn på event (fra pages)
- status på event (fra status, hvis eksisterer, ellers null)
- subject på status (fra status, hvis eksisterer, ellers null)

Håber det giver lidt bedre mening nu :)
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