Hi Chris,
keine Daten, dann also Blindflug
:
1. Mach bitte als erstes ein backup der DB, bzw, wenn Dir das zu aufwendig ist, merk Dir die höchste products_attributes_id in products_attributes, damit Du wenn nötig den alten Zustand der products_attributes wiederherstellen kannst.
2. Du brauchst *einen* Musterartikel, der bez. der Farben korrekt konfiguriert ist. Alle anderen Artikel sollten noch keine Farbe zugeordnet haben. Von diesem Artikel brauchst Du die products_id aus der Datenbank, am einfachsten aus products_description, weil dort der Artikelname im Klartext steht. Angenommen, die products_id Deines Musterartikels ist 4711. Dann bitte folgendes SQL-Statement ausführen (die 4711 musst Du durch den richtigen Wert ersetzen:
SELECT NULL, p.products_id, pa.options_id, pa.options_values_id, pa.options_values_price, pa.price_prefix, pa.attributes_model, pa.attributes_stock, pa.options_values_weight, pa.weight_prefix, pa.sortorder
FROM products_attributes pa
CROSS JOIN products p
WHERE pa.products_id = 4711 AND p.products_id <> 4711
3. wenn das klappt (sollte Dir (Anzahl Artikel -1) * Anzahl Farben, also nach Deiner Beschreibung 799 * 6 Datensätze liefern), dann
-- Attribute bei allen Artikeln außer dem Musterartikel hinzufügen
INSERT INTO products_attributes
SELECT NULL, p.products_id, pa.options_id, pa.options_values_id, pa.options_values_price, pa.price_prefix, pa.attributes_model, pa.attributes_stock, pa.options_values_weight, pa.weight_prefix, pa.sortorder
FROM products_attributes pa
CROSS JOIN products p
-- Musterartikel
WHERE pa.products_id = 4711
-- alle Artikel außer dem Musterartikel
AND p.products_id <> 4711
Dieses Statement klappt so nur, wenn Du nur *einen* Musterartikel hast und die übrigen noch keine Farbzuordnung haben. Falls das nicht der Fall sein sollte, und auch die Artikel 4712, 4715, 4747 bereits Farben haben, müsstest Du dennoch einen zum Musterartikel machen, aber alle, die bereits Farben haben, aus der Menge, die Du hinzufügst, ausschließen. Dazu müsstest Du dann den where-Part zb so ändern:
...
-- Musterartikel
WHERE pa.products_id = 4711
-- alle außer dem Musterartikel und folgenden Artikeln
AND p.products_id NOT IN (4711, 4712, 4715, 4747)
Grüße, Volker