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.
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
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.
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..
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.