J'essaie de mettre à jour un champ dans une table, à partir de la somme d'un autre champ, dans une autre table.Table de mise à jour mysql d'une autre table
company_tbl (primaire, companySize, companyName) location_tbl (primaire, COMPANYID, locationSize, locationName)
Les deux tableaux lien par company_tbl.PRIMARY = location_tbl.companyID
update company_tbl comp, location_tbl loc
set companySize = sum(locationSize)
where comp.PRIMARY = loc.companyID
Je reçois une erreur de « utilisation non valide de la fonction de groupe »
une entreprise peut avoir plusieurs emplacements
Est ce que je veux faire possible? Je veux prendre la somme des emplacements, qui appartiennent à une société spécifique, et mettre à jour le companySize avec la somme.
Merci!
Une petite mise à jour de votre requête. OÙ lt.companyid = comp.primary Ou bien chaque companySize sera le même :-) Je le prends donc ce n'est pas possible de faire la mise à jour avec cette syntaxe? mise à jour company_tbl comp, location_tbl loc set companySize = somme (locationSize) où comp.PRIMARY = loc.companyID Juste par curiosité, j'aime apprendre de nouvelles choses :-) – Kukoy
@Idealflip: S'il n'y a pas de table alias (en général ne sont pas acceptés dans les instructions UPDATE), alors les références de colonnes sans alias de table sont pour la table qui n'a aucun alias défini. –
Vous devriez utiliser la vue. Sauf si vous avez absolument besoin d'optimiser pour les lectures sur la taille de l'entreprise, il est préférable de le calculer à chaque fois. Si vous pouvez calculer la valeur d'une colonne d'une autre, vous vous configurez pour une situation où les deux valeurs ne sont pas synchronisées. – Kendrick