Artikel Attribute auf mehrere Artikel kopieren

der_Dirk

Benutzer
Beiträge
7
Hallo

ich habe ein riesiges Problem...
hoffe hier kann jemand helfen...

Ich möchte die Artikel Attribute von Artikel "A" auf alle Artikel (700) im Shop kopieren (hinzufügen)
die vorhandenen Artikelattribute sollen aber bestehen bleiben

Ich habe jetzt schon mehrere Tage gesessen und verschiedene SQL Abfragen/Befehle geschrieben/versucht
aber immer kommen irgendwelche Fehler... :-(

wenn es hilft...
Es handelt sich hier um ein XT-modified-Shop

------
INSERT INTO products_attributes
SELECT NULL products_attributes_id, products_id, options_id, options_values_id, options_values_price, price_prefix, attributes_model, attributes_stock, options_values_weight, weight_prefix, sortorder, attributes_ean, attributes_vpe_id, attributes_vpe_value
FROM products_attributes
CROSS JOIN products
WHERE products_id = 6 AND products_id BETWEEN 7 AND 700
------

Bitte nur ernsthafte Tipp´s

Danke
 
Werbung:
  • hinzufügen, aber bestehende Attribute sollen bestehen bleiben: sind die also schon da? Dann kein INSERT sondern UPDATE
  • (vermutlich) Syntaxfehler zwischen NULL und products_attributes_id
  • "WHERE products_id = 6 AND products_id BETWEEN 7 AND 700" ist NIE true

ernsthafter wird's nicht ohne Tabellenstruktur und was Du wirklich willst ...
 
Danke schonmal...
genauer gesagt...
Es sind bei einigen Artikel (ca. 250) schon Artikelattribute vorhanden,
und es sollen die neuen aber bei allen Artikel (700) hinzugefügt werden...

was meinst Du mit der "nicht ohne Tabellenstruktur" .... --> habe mal die Struktur als Bild angehangen..

"products_id = 6" ist der Artikel der die neuen Attributte hat
"products_id BETWEEN 7 AND 700" ist der Artikelbereich wo die neuen Attribute hinzugefügt werden sollen...

habe die Anweisung jetzt Angepasst...

---
UPDATE products_attributes;
SELECT NULL products_attributes_id, products_id, options_id, options_values_id, options_values_price, price_prefix, attributes_model, attributes_stock, options_values_weight, weight_prefix, sortorder, attributes_ean, attributes_vpe_id, attributes_vpe_value
FROM products_attributes
CROSS JOIN products
WHERE products_id = 6 AND products_id BETWEEN 7 AND 700
---

jetzt kommt als Fehlermeldung

---
SQL-Befehl:
UPDATE products_attributes

MySQL meldet:
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '' in Zeile 1
---
 

Anhänge

  • struktur_Tabelle_produkt-attribute.jpg
    struktur_Tabelle_produkt-attribute.jpg
    702,2 KB · Aufrufe: 7
aber trozdem bleibt der Fehler

---
SQL-Befehl:
UPDATE products_attributes

MySQL meldet:
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '' in Zeile 1
---

bekomme das nicht "weg"
weiß nich weiter....
 
wenn ich Dich richtig verstanden habe hast Du

Code:
edb=> select * from prod_attribute order by id;
 id | attribut
----+----------
  1 | schwarz
  2 | gelb
  3 | braun
  4 | grün
  5 | rot
  6 | blau
  7 | lila
  8 | weiß
  9 | orange
 21 |
 22 |
 23 | schwarz
 24 | rot
 25 |
 26 |
(15 rows)

und willst

Code:
edb=*> with farbe as (select attribut from prod_attribute where id = 2) update prod_attribute set attribut = farbe.attribut from farbe where id > 10 and prod_attribute.attribut is null;
UPDATE 4
edb=*> select * from prod_attribute order by id;
 id | attribut
----+----------
  1 | schwarz
  2 | gelb
  3 | braun
  4 | grün
  5 | rot
  6 | blau
  7 | lila
  8 | weiß
  9 | orange
 21 | gelb
 22 | gelb
 23 | schwarz
 24 | rot
 25 | gelb
 26 | gelb
(15 rows)

edb=*>

aber das sind jetzt nur ganz wilde Vermutungen, und 6 ist zwischen 7 und 700, weiß ja jeder.
 
Werbung:
na fast

Artikel 1 = products_id 6
hat folgende Attribute Blau, Schwarz, Grün

Artikel 2 - 250 = products_id 7 - 257
hat folgende Attribute X, XL, XXL
und die Attribute von Artikel 1 = products_id 6 sollen hinzugefügt werden

Artikel 11 - 700 = product_id 258 - 806
und die Attribute von Artikel 1 = products_id 6 sollen kopiert werden


hoffe es soweit verständlich erklärt zu haben
 
Zurück
Oben