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:
    9.088
    Danke erhalten:
    1.613
    Danke vergeben:
    1.212
    #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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.707
    Danke erhalten:
    513
    Danke vergeben:
    173
    Geht das nicht über Quickedit?
     
  4. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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:
    47
    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:
    9.088
    Danke erhalten:
    1.613
    Danke vergeben:
    1.212
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    #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.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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:
    47
    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.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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:
    47
    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:
    9.088
    Danke erhalten:
    1.613
    Danke vergeben:
    1.212
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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:
    9.088
    Danke erhalten:
    1.613
    Danke vergeben:
    1.212
    :) Danke Dir.
     
  15. cdoo
    cdoo Erfahrener Benutzer
    Registriert seit:
    15. November 2018
    Beiträge:
    79
    Danke erhalten:
    41
    Danke vergeben:
    24
    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.707
    Danke erhalten:
    513
    Danke vergeben:
    173
    Oder mit dem Quickedit.
     
  17. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    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.707
    Danke erhalten:
    513
    Danke vergeben:
    173
  19. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.251
    Danke erhalten:
    1.141
    Danke vergeben:
    391
    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: