Toon posts:

SQL opdracht om gegevens te plaatsen.

Pagina: 1
Acties:

Onderwerpen

Vraag


  • Gnitnel
  • Registratie: December 2021
  • Laatst online: 31-12-2021
Hallo,

Ik ben al geruime tijd bezig met het uitdokteren van een script om in mijn Prestashop-database iets aan te passen.
Mijn kennis is blijkbaar wat te weinig om het voor elkaar te krijgen.

Wat ik graag wil is het volgende:

In het tabel "ps_lgcomments_productcomments" is een kolom "nick" met als type "varchar(255)" en als collatie "utf8_general_ci"
In dat zelfde tabel is ook een kolom "id_customer"

Die kolom "nick" moet gevuld worden met de tabel "firstname" van de klant die het zelfde nummer heeft als "id_customer" uit het tabel "ps_customer".

Kan iemand mij hier mee helpen?
Op dit moment heb ik wel de product- en winkelbeoordelingen in mijn winkel staan, maar allemaal hebben ze als klantnaam "Anonymous".


Hoe het er uit moet zien in mijn optiek:
1) zoek in "ps_lgcomments_productcomments" de data van "id_customer"
2) zoek in "ps_customer" de juiste "id_customer" en gebruik de data in die regel van "firstname"
3) importeer deze "firstname"-data in de regel van "nick" in "ps_lgcomments_productcomments"

Beste antwoord (via Gnitnel op 31-12-2021 12:30)


  • Hydra
  • Registratie: September 2000
  • Laatst online: 20:04
Iets als (uit het hoofd):

UPDATE ps_lgcomments_productcomments pc SET pc.nick = (SELECT c.firstname FROM ps_customer c WHERE c. id_customer = pc. id_customer)

Zou moeten kunnen. Beetje afhankelijk van of de onderliggende database subqueries in updates ondersteunt.

Test het wel eerst ff in een back-up. Bovenstaande query overschrijft ALLE nick waarden in ps_lgcomments_productcomments.

[Voor 18% gewijzigd door Hydra op 31-12-2021 12:19]

https://niels.nu

Alle reacties


Acties:
  • Beste antwoord
  • +1Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 20:04
Iets als (uit het hoofd):

UPDATE ps_lgcomments_productcomments pc SET pc.nick = (SELECT c.firstname FROM ps_customer c WHERE c. id_customer = pc. id_customer)

Zou moeten kunnen. Beetje afhankelijk van of de onderliggende database subqueries in updates ondersteunt.

Test het wel eerst ff in een back-up. Bovenstaande query overschrijft ALLE nick waarden in ps_lgcomments_productcomments.

[Voor 18% gewijzigd door Hydra op 31-12-2021 12:19]

https://niels.nu


  • Gnitnel
  • Registratie: December 2021
  • Laatst online: 31-12-2021
Wow! Snel! meteen uitproberen op de test-omgeving.
Dank alvast!

  • Gnitnel
  • Registratie: December 2021
  • Laatst online: 31-12-2021
Worked like a charm!
Echt heel erg bedankt, dit had ik echt nooit voor elkaar gekregen met mijn basic-sql kennis.

  • DHH
  • Registratie: Augustus 2014
  • Laatst online: 28-01 14:55
Misschien ook goed om even na te denken hoe om te gaan met toekomstige comments, want de voorgestelde 'UPDATE' werkt alleen wanneer je deze uitvoert en nieuwe comments houden waarschijnlijk nog steeds een lege 'nick'.

Je kan overwegen om de query die je webshop gebruikt te herchrijven naar:
code:
1
2
3
SELECT pc.<columns die je nodig hebt>, c.firstname
FROM ps_lgcomments_productcomments as pc
LEFT JOIN ps_customer as c on pc.id_customer  = c.id_customer


Hierdoor hoef je 'nick' in ps_lgcomments_productcomments helemaal niet meer te gebruiken en heeft als voordeel dat de naam bij je comment altijd bijgewerkt is, ook als de klant zijn gegevens verandert.

INNER JOIN werkt overigens ook, mits elke comment een (geldige) id_customer heeft, dus niet gebruiken als je anomiem commenten mogelijk is.

[Voor 10% gewijzigd door DHH op 01-01-2022 15:19]



Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee