hoi iedereen,

het idee is vrij eenvoudig, de oplossing misschien niet. in mijn webshop bevatten de productnamen niet de merknaam. zo zal een sony 42" lcd tv op de site verschijnen als 42" lcd tv en onder merk staat dan ergens sony. nu zou ik mijn volledige database willen aanpassen zodat ook de merknaam in de productnaam voorkomt (beter voor seo en mooier op de site ook).

ik heb even in de database gekeken en er zijn drie tabellen mee gemoeid:

products_description: bevat products_id en products_name
manufacturers: bevat manufacturers_id en manufacturers_name
products: bevat products_id en manufacturers_id

voorbeeld: product 15 met naam 42" lcd tv heeft manufacturer 3 met naam sony. de products_name van alle producten zou nu aangepast moeten worden naar een concatenatie van de manufacturers_name en de huidige products_name.

kan iemand hiervoor een query maken?

grtz,
stein
De oplossing is ook eenvoudig

SELECT (m.manufactures_name || '' || p.products_name) AS pfull , p.products_description AS description
FROM products
JOIN manufacturers AS m USING manufacturers_id
JOIN products_description AS p USING products_id
bedankt voor de snelle reactie! op die select moet ik dan gebruiken in mijn update statement waarschijnlijk? hoe komt dat eruit te zien?
Wat mag het nut zijn van dubbele gegevens in je database?
de juiste query is volgens mij:

UPDATE products_description prd
INNER JOIN products p
ON prd.products_id = p.products_id
SET prd.products_name = '(SELECT CONCAT(m.manufacturers_name, ' ', prd.products_name) FROM products_description prd JOIN manufacturers m ON m.manufacturers_id = p.manufacturers_id JOIN products p ON p.products_id = prd.products_id)'
WHERE p.products_id = '16867'

dat is een voorbeeldje voor product '16867'. weet iemand wat ik in de WHERE moet plaatsen om dit nu voor alle rijen in de tabel toe te passen?
Wat je wil dan updaten? Kijk naar wat SanThe zegt
Je kan doormiddel van een join gegevens uit meerdere tabellen ophalen met 1 query.
Overigens vind ik je database overgenormaliseerd.
Waarom wil je de database om zeep helpen?
ik wil de database niet om zeep helpen, de product naam moet nu eenmaal de merknaam erin bevatten. dat vind ik logisch..
Een product kan toch bekend zijn onder meerdere merken.
neen, je hebt een sony lcd tv of je hebt een samsung lcd tv. 1 product heeft 1 merk. ik vind gewoon de omschrijving 42" lcd tv als productnaam onvolledig als het om een sony 42" lcd tv gaat..
Stein de sutter op 01/12/2011 16:54:56

neen, je hebt een sony lcd tv of je hebt een samsung lcd tv. 1 product heeft 1 merk. ik vind gewoon de omschrijving 42" lcd tv als productnaam onvolledig als het om een sony 42" lcd tv gaat..

Kan ik begrijpen, maar het is niet nodig om daarvoor je product_description tabel te updaten, het is zelfs onverstandig omdat te doen.

Reageren