Avatar billede jalaba Nybegynder
07. november 2007 - 16:22 Der er 6 kommentarer

INNER JOIN med mere end to tabeller

Jeg vil gerne hente fra i alt fire forskellige tabeller, og jeg skal bruge indholdet fra felterne der er vist nedenfor.
"SELECT
    `tabel1`.`title`,
    `tabel2`.`text`,
    `category`.`title`,
    `user`.`username`
.."

tabel2.text skal hentes ud fra tabel1.text_id
category.title skal hentes ud fra tabel1.category_id
user.username skal hentes ud fra tabel1.user_id
Avatar billede morpheus Nybegynder
07. november 2007 - 16:29 #1
Avatar billede jensgram Nybegynder
07. november 2007 - 16:38 #2
Utestet:

SELECT t1.title, t2.text, c.title, u.username
FROM tabel1 AS t1, tabel2 AS t2, category AS c, user AS u
WHERE t2.id = t1.text_id
    AND c.id = t1.category_id
    AND u.id = t1.user_id

Men jeg er ikke klar over hvad dine "id"-felter hedder... Ej heller om jeg har misforstået spm :)
Avatar billede jalaba Nybegynder
07. november 2007 - 16:49 #3
morpheus - jeg kan ikke se, at der bliver brugt flere end to tabeller i den INNER JOIN?
jeg opgav bare at bruge INNER JOIN, og har bare valgt den gamle syntax, som jensgram også har brugt i sit indlæg.

nu har jeg blot et nyt problem.

$sql = "SELECT
    `article`.`title`,
    `articleText`.`text`,
    `category`.`title` AS `categoryTitle`
FROM
    `tabel1` AS `article`,
    `tabel2` AS `articleText`,
    `tabel3` AS `category`
WHERE
    `article`.`title` = '{$title}' AND
    `article`.`textId` = `articleText`.`id` AND
    `article`.`categoryId` = `category`.`id`
LIMIT
    1";
Avatar billede jalaba Nybegynder
07. november 2007 - 16:50 #4
Hov, det gik lidt stærkt :)

Problemet er, at den ikke findern ogle resultater hvis der ikke er angivet nogen kategori - og det skal være helt valgfrit at angive en kategori. Hvis ingen kategori er valgt, så er categoryId bare 0.

Hvordan skal det så se ud?
Avatar billede jensgram Nybegynder
07. november 2007 - 17:09 #5
WHERE
    `article`.`title` = '{$title}' AND
    `article`.`textId` = `articleText`.`id` AND
    (`article`.`categoryId` = `category`.`id` OR `article`.`categoryId` = 0)

Måske?
Avatar billede jensgram Nybegynder
22. december 2007 - 14:14 #6
Løste det problemet?
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