Anleitung Hilfreiche SQL-Befehle

Thema wurde von Petra, 28. April 2015 erstellt.

  1. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.840
    Danke erhalten:
    1.532
    Danke vergeben:
    1.091
    #581 Anonymous, 13. Juli 2024
    Zuletzt bearbeitet: 13. Juli 2024
    Moin zusammen
    Gibt es einen SQL-Befehl mit dem man den Namen des Herstellers in die Spalte "Marke" beim Artikel eintragen kann?

    Ich finde die Spalte nicht :(
     
  2. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.765
    Danke erhalten:
    934
    Danke vergeben:
    302
    Steht in der Tabelle products_item_codes
    Da gibt es aber nicht für jeden Artikel einen Wert. Nur wenn es bereits einen itemcode gibt.
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.527
    Danke erhalten:
    449
    Danke vergeben:
    161
    Geht das nicht über Quickedit?
     
  4. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.441
    Danke erhalten:
    11.245
    Danke vergeben:
    1.606
    Qcuickedit hat zwar eine Spalte für Hersteller, aber keine für Marke.

    Zumindest für die Artikel, die schon in der Tabelle products_item_codes stehen und
    wenn Du die Hersteller-ID weißt (die steht in der Tabelle manufacturers)
    könntest Du es hiermit im Testshop probieren:
    Code:
    UPDATE products_item_codes pic LEFT JOIN products p ON pic.products_id=p.products_id SET pic.brand_name = 'Herstellername' WHERE p.manufacturers_id = 1;
    Herstellername und die 1 am Ende müssen natürlich mit Deinen Werten ersetzt werden.
    Stehen noch nicht alle Artikel in der Tabelle, müsste man die Fehlenden dort erst anlegen.
     
  5. IG666

    IG666 Erfahrener Benutzer

    Registriert seit:
    18. November 2015
    Beiträge:
    46
    Danke erhalten:
    10
    Danke vergeben:
    6
    Hallo,

    suche einen SQL Befehl, um Artikeln mit bestimmtem Text im Titel einen bestimmten Hersteller zuzuweisen.
    Z.b. allen Artikeln mit dem Text Brother im Titel soll der Hersteller Brother zugewiesen werden.
    Hoffe, es ist möglich.
    Vielen Dank!
     
  6. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.840
    Danke erhalten:
    1.532
    Danke vergeben:
    1.091
    Moin Barbara
    Hat funktioniert, super. Vielen Dank und einen schönen Sonntag!
     
  7. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.765
    Danke erhalten:
    934
    Danke vergeben:
    302
    #587 Christian Mueller, 14. Juli 2024
    Zuletzt bearbeitet: 14. Juli 2024
    Das kannst Du damit machen:
    Code:
    INSERT INTO products_item_codes ( products_id )
    SELECT p.products_id
    FROM products AS p LEFT JOIN products_item_codes AS pic ON p.products_id = pic.products_id
    WHERE pic.products_id Is Null;
    

    Wer mag, kann das auch einfach täglich automatisch ausführen lassen:

    Code:
    CREATE EVENT `Fehlende product_item_codes erstellen` ON SCHEDULE EVERY 1 DAY STARTS '2024-07-14 13:24:56.000000' ENDS '2099-12-31 3:24:56.000000' ON COMPLETION PRESERVE ENABLE DO INSERT INTO products_item_codes ( products_id ) SELECT p.products_id FROM products AS p LEFT JOIN products_item_codes AS pic ON p.products_id = pic.products_id WHERE pic.products_id Is Null;
    
     
  8. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.441
    Danke erhalten:
    11.245
    Danke vergeben:
    1.606
    Steht der Text im Produktnamen, oder in einer Überschrift in der Beschreibung?
    Wenn es im Artikelnamen steht und Du wirklich den Hersteller einsetzen möchtest, kannst Du das auch ganz einfach in QuickEdit.
     
  9. IG666

    IG666 Erfahrener Benutzer

    Registriert seit:
    18. November 2015
    Beiträge:
    46
    Danke erhalten:
    10
    Danke vergeben:
    6
    der Text steht im Produktnamen. Über Quickedit muss ich ja dann jeden Artikel einzeln bearbeiten...Ich dachte dass man mit dem SQL Befehl einfach den Titel scannt und den Hersteller einsetzt.
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.441
    Danke erhalten:
    11.245
    Danke vergeben:
    1.606
    Nein, das geht auch schneller.
    Der Modus ist "Filtern"
    Über der Spalte des Artikelnamens gibst Du eine Suche ein
    *Text*
    und klickst auf den Button "Filtern"
    Jetzt werden alle Artikel, in denen der Text steht, angezeigt.

    Nun stellst Du den Modus um auf "Editieren"
    setze am Anfang die Haken
    Wähle unter "Hersteller" im Dropdown den passenden aus und gehe auf "Speichern"

    Es könnte nur sein, dass Du es bei mehreren Seiten einmal je Seite machen musst.
     
  11. IG666

    IG666 Erfahrener Benutzer

    Registriert seit:
    18. November 2015
    Beiträge:
    46
    Danke erhalten:
    10
    Danke vergeben:
    6
    OK, vielen Danke, werde gleich ausprobieren!
     
  12. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.840
    Danke erhalten:
    1.532
    Danke vergeben:
    1.091
    Hallo Barbara
    Gibt es auch einen Befehl wenn man die Artikelnummer (products_model) bei MPN (code_mpn) eintragen will?
     
  13. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.765
    Danke erhalten:
    934
    Danke vergeben:
    302
    Ich bin zwar nicht Barbara, aber bitte:

    Code:
    UPDATE products_item_codes AS pic LEFT JOIN products AS p ON pic.products_id = p.products_id SET pic.code_mpn = p.products_model;
    
     
  14. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.840
    Danke erhalten:
    1.532
    Danke vergeben:
    1.091
    :) Danke Dir.
     
  15. cdoo

    cdoo Erfahrener Benutzer

    Registriert seit:
    15. November 2018
    Beiträge:
    66
    Danke erhalten:
    30
    Danke vergeben:
    23
    Ich habe einen SQL-Befehl geschrieben, der bei mir automatisch den Artikelhersteller (Dropdown) in das Feld Marke für den Google Export übernimmt - er überschreibt dazu auch bereits hinterlegte Werte in der "Marke" brand_name.

    zur Verwendung im Testshop bzw. auf eigenes Risiko:

    Code:
    UPDATE products_item_codes pic
    JOIN products p ON pic.products_id = p.products_id
    JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id
    SET pic.brand_name = m.manufacturers_name;
     
  16. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.527
    Danke erhalten:
    449
    Danke vergeben:
    161
    Oder mit dem Quickedit.
     
  17. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.441
    Danke erhalten:
    11.245
    Danke vergeben:
    1.606
    da mit kommst Du leider nicht an "Brand-Name" oder andere Bereiche der "Erweiterten Konfiguration"
     
  18. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    1. September 2012
    Beiträge:
    2.527
    Danke erhalten:
    449
    Danke vergeben:
    161
  19. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.765
    Danke erhalten:
    934
    Danke vergeben:
    302
    Das ersetzt aber nur Werte in products_item_codes, wenn da schon Werte für den Artikel drinnstehen.
    Das Fiese an der Tabelle ist, daß der Produkteintrag vom Shop erst erzeugt wird, wenn einer der Werte angelegt wird.
    Gibt es noch keinen Wert für den Artikel, kannst Du mit Update auch nichts eintragen. Du musst den erst für den Artikel erzeugen mit Insert.

    D.h. auf Deutsch: der Befehl wird Dir nicht alle Artikel updaten.
     
  20. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.070
    Danke erhalten:
    922
    Danke vergeben:
    333
    Das ist vollkommen richtig. Den SQL-Befehl, um die fehlenden Einträge in der products_item_codes zu erzeugen, hatte @Dominik Dehning die Tage gepostet: