[mysql] Vreemd probleem

Pagina: 1
Acties:

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ik heb hier voor jullie een behoorlijk vaag probleem.
Ik heb een tabel producten met daar in de gegevens cat_id en leverancier.
Deze slaan respectievelijk op de categorie waar het product in staat en het nummer van de leverancier.
Nou heb ik ook een tabel 'categorie', waarin alle product-categorieën instaan, dus bijvoorbeeld 'behuizingen', 'koelers' enz.
Ik heb ook een tabel 'leverancier' waar alle leveranciers instaan.

Nou is mijn vraag:
Als ik op een bepaalde categorie klik, dan moet ie een lijstje met alle leveranciers weergeven die een product in die categorie hebben staan.
Als bijvoorbeeld in de categorie moederborden het volgende staat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Table 'Producten'

Naam     Cat_id  Leverancier
MOBO1    2   1
MOBO2    2   1
MOBO3    2   2

Table 'Categorien'
Naam     id
Geheugen   1
Mobo's     2
Behuizing  3

Table 'Leveranciers'
Naam     id
Asustech   1
Blaatech   2

Nou krijg ik het wel voor elkaar om een lijstje met alle leveranciers te krijgen, maar nou krijg ik dus asustech dubbel. Ik moet dus alle leveranciers in die categorie maar één keer krijgen.

Tnx in advance.

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ik heb dit al:
code:
1
SELECT leverancier, count(leverancier) FROM producten WHERE cat='1' GROUP BY leverancier

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op zaterdag 01 december 2001 10:15 schreef dev-null het volgende:
Nou krijg ik het wel voor elkaar om een lijstje met alle leveranciers te krijgen, maar nou krijg ik dus asustech dubbel. Ik moet dus alle leveranciers in die categorie maar één keer krijgen.
Daar is SELECT DISTINCT voor.

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Weet iemand dan waarom dit niet werkt?
code:
1
2
3
4
SELECT cat_leverancier.name, 
count(cat_product.leverancier) FROM cat_product 
WHERE cat='1' GROUP BY leverancier INNER JOIN cat_leverancier ON 
cat_product.leverancier = cat_leverancier.id

ik krijg de volgende error:
code:
1
2
MySQL said: You have an error in your SQL syntax near 'INNER JOIN cat_leverancier ON 
cat_product.leverancier = cat_leverancier.id' at line 1

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ik heb het nou werkend. Mocht iemand interesse hebben:
code:
1
2
3
4
5
6
7
8
SELECT cat_leverancier.name AS name, 
cat_product.leverancier AS id, 
count(cat_product.leverancier) AS count
FROM cat_product 
INNER JOIN cat_leverancier ON 
cat_product.leverancier = cat_leverancier.id 
WHERE cat='1' 
GROUP BY leverancier

edit:

Schoonheidsfoutjes