Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: SQL Anfrage - Cross Selling kopieren

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    SQL Anfrage - Cross Selling kopieren
    am: 02. September 2014, 11:38:38
    Hallo,

    ich brauche für ein paar Produkte die gleiche Cross-Selling Artikel von einem anderen Produkt.
    Ich habe gedacht über die DB.

    Wie soll das Befehl richtig sein? so an etwa:
    Code: SQL  [Auswählen]
    INSERT INTO products_xsell WHERE products_id = 1167
    SELECT * FROM products_xcell WHERE products_id = 1104;

    Das Befehl funktioniert natürlich nicht, wie ist das korrekt?

    Gruß piru

    Linkback: https://www.modified-shop.org/forum/index.php?topic=30982.0
    Managed Server

    Matt

    • Experte
    • Beiträge: 4.241
    Re: SQL Anfrage - Cross Selling kopieren
    Antwort #1 am: 02. September 2014, 13:20:10
    Ungetestet:
    Code: SQL  [Auswählen]
    INSERT INTO products_xsell (products_id, products_xsell_grp_name_id, xsell_id, sort_order) SELECT 1167, products_xsell_grp_name_id, xsell_id, sort_order FROM products_xcell WHERE products_id = 1104;

    Wobei 1104 das Produkt ist, das derzeit schon Cross-Sell-Artikel hat und 1167 das ohne.

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: SQL Anfrage - Cross Selling kopieren
    Antwort #2 am: 02. September 2014, 13:27:44
    Perfekt Matt!!
    Danke dir!!  :thumbs:

    Gruß piru

    Schreinermeister

    • Fördermitglied
    • Beiträge: 425
    • Geschlecht:
    Re: SQL Anfrage - Cross Selling kopieren
    Antwort #3 am: 23. Mai 2020, 18:27:37
    Hallo zusammen,

    ich muss den Thread nochmal ausgaraben.

    Bin gerade dabei viele Artikel zu übererabeiten, welche die selben cross_selling Artikel bekommen sollen.
    Mit dem obigen SQL Code funktionierts ganz gut, nur müssten die vorher enthaltenen cross_selling Artikel aus der DB gelösch werden.
    Ich hab mir nach etwas suchen folgenden Befehl zusammengepastelt.

    Code: PHP  [Auswählen]
    UPDATE products_xsell SET products_id = '', products_xsell_grp_name_id ='', xsell_id = '', sort_order ='' WHERE products_id = 7724;
    INSERT INTO products_xsell (products_id, products_xsell_grp_name_id, xsell_id, sort_order) SELECT 7724, products_xsell_grp_name_id, xsell_id, sort_order FROM products_xsell WHERE products_id = 7705;
     

    7705 ist der zu kopierenden Artikel
    7724 der, welcher die cross_selling Produkte erhalten soll

    Da ich wenig Ahnung davon habe und keinen "groben" Fehler in der DB aufrufen will, bitte ich darum das einer der "wissenden" das kurz bestätigt.
    Gruß Chris

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: SQL Anfrage - Cross Selling kopieren
    Antwort #4 am: 23. Mai 2020, 23:14:44
    Hallo Chris,

    dein geposteter UPDATE Befehl löscht keine Zeile, wenn ich dich aber recht verstehe  willst du in einer Tabelle eine bestehende Zeile mit den Werten einer anderen bereits bestehenden Zeile überschreiben. Wenn ja, dann kannst du dich an folgenden Links orientieren.

    https://stackoverflow.com/questions/10895646/mysql-update-a-row-with-another-row-value-in-same-table
    https://stackoverflow.com/questions/16030341/update-a-row-with-data-from-another-row-within-the-same-table

    Die entsprechenden Statements müssten dann etwa, nicht getestet, so aussehen.

    Code: SQL  [Auswählen]
    UPDATE products_xsell AS t1 JOIN products_xsell AS t2 ON t2.products_id = 7705
    SET    t1.products_xsell_grp_name_id = t2.products_xsell_grp_name_id, t1.xsell_id = t2.xsell_id, t1.sort_order = t2.sort_order
    WHERE  t1.products_id = 7724;
     

    Code: SQL  [Auswählen]
    UPDATE  products_xsell a
            CROSS JOIN products_xsell b
    SET     a.products_xsell_grp_name_id = b.products_xsell_grp_name_id,
            a.products_xsell_grp_name_id = b.products_xsell_grp_name_id,
            a.xsell_id = b.xsell_id,
            a.sort_order = b.sort_order
    WHERE   a.products_id = 7705 AND
            b.products_id = 7724;
     

    Gruss
    Hanspeter

    Schreinermeister

    • Fördermitglied
    • Beiträge: 425
    • Geschlecht:
    Re: SQL Anfrage - Cross Selling kopieren
    Antwort #5 am: 25. Mai 2020, 18:31:26
    Hallo hpzeller,

    Danke für deine Antwort.

    Ich hab nun beide Varianten versucht.

    Leider funktionieren diese nicht.

    Soweit ich es nachvollziehen kann wird, wenn der Ausgangsartikel drei cross_selling Artikel hat, der erste dieser Artikel dreimal als cross_selling Artikel beim Empfänger eingetragen.

    Ich versuchs weiter.

    Dennoch Danke für die Hilfe.

    Gruß Chris
    1 Antworten
    1669 Aufrufe
    07. August 2013, 13:51:51 von prodigi23
    3 Antworten
    2155 Aufrufe
    14. Dezember 2012, 16:30:50 von noRiddle (revilonetz)
               
    anything