SQL JOIN
Peter Flos
14/09/2014 22:07:36Avond,
Ik heb de volgende tabel:
Producten
Structuur:
ID
Naam
Categorie
Ik heb nog een tabel:
Categorie
Structuur:
ID
Naam
En nog een:
Categorie_Product
Structuur:
ID
ProductID
CategorieID
Wat er wordt gedaan:
Er wordt gekeken welk ID er in de link staat, pak als voorbeeld even 1. Nu staat in de tabel Producten een categorie, wat er nu gebeurd is dat er daar uit wordt geselecteerd. Maar, enkele producten moeten in meerdere categorieën kunnen, dus elke andere categorie staat daarin gekoppeld. Je krijgt dus (vb)
Producten:
1 (ID)
PHPHulp Boek (Naam)
1 (Cat)
Categorie:
1 (ID)
Boeken (Naam)
2 (ID)
PHP (Naam)
Product_Categorie:
1 (ID)
1 (ProductID)
2 (CatID)
Nu moet dus ook het product van Product_Categorie komen te staan.
Echter komen er maximaal 6 producten op een pagina, waarna je met Volgende en Vorige een pagina vooruit en Achteruit kan gaan. Hoe doe ik dat? Ik dacht aan een JOIN.
Groet,
Peter
Ik heb de volgende tabel:
Producten
Structuur:
ID
Naam
Categorie
Ik heb nog een tabel:
Categorie
Structuur:
ID
Naam
En nog een:
Categorie_Product
Structuur:
ID
ProductID
CategorieID
Wat er wordt gedaan:
Er wordt gekeken welk ID er in de link staat, pak als voorbeeld even 1. Nu staat in de tabel Producten een categorie, wat er nu gebeurd is dat er daar uit wordt geselecteerd. Maar, enkele producten moeten in meerdere categorieën kunnen, dus elke andere categorie staat daarin gekoppeld. Je krijgt dus (vb)
Producten:
1 (ID)
PHPHulp Boek (Naam)
1 (Cat)
Categorie:
1 (ID)
Boeken (Naam)
2 (ID)
PHP (Naam)
Product_Categorie:
1 (ID)
1 (ProductID)
2 (CatID)
Nu moet dus ook het product van Product_Categorie komen te staan.
Echter komen er maximaal 6 producten op een pagina, waarna je met Volgende en Vorige een pagina vooruit en Achteruit kan gaan. Hoe doe ik dat? Ik dacht aan een JOIN.
Groet,
Peter
PHP hulp
26/04/2024 00:48:32Wat je hier hebt is many to many relatie, dus de kolom voor de categorie kan uit de tabel producten.
Daar heb je de link tabel voor, ook al behoort een product maar tot één categorie komt die in de link tabel.
Dan kan je de kolom ID uit Product_Categorie verwijderen en een PK zetten op beide anderen.
Dan met deze query:
Daar heb je de link tabel voor, ook al behoort een product maar tot één categorie komt die in de link tabel.
Dan kan je de kolom ID uit Product_Categorie verwijderen en een PK zetten op beide anderen.
Dan met deze query:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT p.id,
p.product_naam
FROM
producten p
JOIN
Producten_Categorie pc
ON p.id = pc.ProductID
WHERE
pc.CatID = 1
LIMIT 0, 6
p.product_naam
FROM
producten p
JOIN
Producten_Categorie pc
ON p.id = pc.ProductID
WHERE
pc.CatID = 1
LIMIT 0, 6
Gewijzigd op 14/09/2014 22:27:00 door Ger van Steenderen