0
votes

Rejoindre intérieur au lieu de ce que j'ai maintenant

La requête ci-dessous fait ce que je veux, mais prend beaucoup de temps pour finir. J'ai essayé de l'écrire avec une jointure intérieure à la place mais ne peut pas comprendre comment le faire. xxx

cf_ab_companies.model_id est une valeur unique dans la table.

Il peut y avoir plusieurs enregistrements où aa_items.customer = 314, mais aa_items.customer = 314 et aa_item.sku = 10 ne peut se produire qu'une seule fois.

J'espère que vous comprenez ce que je veux dire. Merci pour toute l'aide.


0 commentaires

4 Réponses :


0
votes

Mettre à jour la syntaxe multiple-table peut être trouvée https: // dev .mysql.com / DOC / REFMAN / 8.0 / FR / UPTATE.HTML

Utilisation de cette requête ressemblerait à P>

UPDATE cf_ab_companies join
        aaa_items on aaa_items.customer =  cf_ab_companies.model_id
SET cf_ab_companies.col_330 = aaa_items.amount
WHERE aaa_items.sku = 10
;


1 commentaires

Cela a réduit le temps utilisé de 54,2 secondes à 0,81 seconde. Merci beaucoup pour votre aide.



0
votes

Voici la mise à jour MySQL MySQL ... Joindre ... SET CODE> SYNATAX:

UPDATE cf_ab_companies c
INNER JOIN aaa_items i ON i.customer = c.model_id AND i.sku = 10
SET c.cf_ab_companies.col_330 = i.aaa_items.amount


1 commentaires

Merci beaucoup, GMB. Problème semble être résolu par P.Salmon. Je ne comprends pas bien si la jointure intérieure fonctionne différemment de la jointure dans ce cas, cependant.



0
votes
update cf_ab_companies c 
join aaa_items a on a.customer = c.model_id 
set c.col_330 = a.amount 
where a.sku = 10
......

1 commentaires

Merci beaucoup. Je ne savais pas que je pouvais "abréger" les noms de table comme ça.



0
votes

Je pense qu'une mise à jour de peut aider: xxx


1 commentaires

Ce n'est pas une syntaxe valide pour MySQL.