Est-il possible de conserver toujours la même valeur dans deux champs de tables différentes?MySQL: conserve toujours la même valeur dans deux champs de tables différentes
Répondre
Vous pouvez utiliser triggers de sorte que si l'un des champs est modifié, l'autre est synchronisé pour correspondre.
Il est généralement préférable de ne pas enregistrer une valeur deux fois. Au lieu de cela, vous pouvez stocker la valeur dans une seule des tables et lorsque vous interrogez, vous pouvez joindre les deux tables sur une clé étrangère afin que vous ayez accès aux valeurs des deux tables en même temps:
SELECT table1.foo, table2.bar
FROM table1
JOIN table2 ON table1.table2_id = table2.id
Si vous stockez deux fois la valeur que l'on appelle dénormalisation. Cela peut entraîner des problèmes si les valeurs ne sont jamais synchronisées pour une raison ou une autre. Parfois, il est avantageux de dénormaliser pour améliorer les performances, mais une seule jointure est très rapide, donc à moins que vous n'ayez mesuré la performance et que vous l'ayez trouvée trop lente, je vous déconseille de le faire.
INSERT INTO TABLE A (FieldInA) VALUES ('X')
INSERT INTO TABLE B (FieldInB) VALUES ('X')
Ensuite, il suffit jamais supprimer, ni mise à jour, ces lignes de la table, et le tour est joué, vous avez toujours la même valeur dans deux champs de tables différentes.
Ha ha ha! J'espère vraiment que tu as voulu que ce soit une blague ... –
Ce n'était pas moi, mais c'est un pari. Si vous supprimez cette réponse, vous obtiendrez le représentant quand il y aura un recalcul de rep. –
Une raison pour laquelle vous ne pouviez pas normalize
la conception de votre base de données de sorte que vous n'avez pas les mêmes données deux fois et ne pas avoir à vous soucier de choses comme ça plus?
Si vous ne pouvez pas changer la conception jeter un oeil à triggers
Ma conjecture est que les valeurs qui sont gardées identiques sont le texte ou le truc de forme libre entré par l'utilisateur, mais alors il pourrait avoir une table pour lui et référencer les nouvelles entrées par ID. – FrustratedWithFormsDesigner
Pourquoi voudriez-vous jamais faire cela?
Si un attribut d'une entité est toujours identique à un attribut d'une autre entité associée, alors vous avez un modèle de données redondant.
Au lieu d'essayer de synchroniser les attributs, se réfèrent à un attribut. Utilisez une jointure pour joindre la première table à la seconde, puis récupérez la valeur de l'attribut dans une table. Par exemple, si vous avez actuellement ceci:
TableA.foo should always equal TableB.bar
colonne goutte TableA.foo, et faites ceci:
select A.*, B.bar as foo
from TableA A
join TableB B on (B.foreign_key = A.key);
- 1. concaténer deux champs dans différentes tables avec mysql?
- 2. Comment sélectionner des lignes différentes dans deux tables MySQL avec la même structure?
- 3. vue mySQL pour deux tables différentes?
- 4. MySql Requête: commande de deux champs dans deux tables
- 5. Comment sélectionner le contenu de deux tables différentes dans Mysql?
- 6. comment comparer deux noms de champs de tables avec une autre valeur dans mysql?
- 7. MySQL (MyISAM) - champ de mise à jour du plus grand des deux champs de tables différentes
- 8. Comment synchroniser deux tables MySQL ayant des structures différentes?
- 9. fusionnement conditionnel de deux tables dans mysql
- 10. Comment interroger la valeur maximale de deux colonnes dans deux tables différentes?
- 11. Comptage de tables différentes dans les tables MySQL MyISAM
- 12. Subsonic: même nom de colonne différentes tables
- 13. NHibernate - mappe la même entité à différentes tables dans la même base de données
- 14. Concaténation de lignes de différentes tables dans un même champ
- 15. Est-ce que la valeur de bin2hex peut être la même pour deux chaînes différentes?
- 16. Linq to SQL Rejoindre la même table Deux fois pour deux tables différentes
- 17. mysql select dans deux tables
- 18. table croisée de deux tables dans MySQL
- 19. Interrogation deux tables ... dans MySQL
- 20. MySQL comment joindre des tables sur deux champs
- 21. - fonction Randomiser retour même valeur pour les deux graines différentes
- 22. Même code faisant deux choses différentes sur deux applications différentes?
- 23. Calculer la valeur de deux champs dans le troisième champ
- 24. Comment puis-je ajouter la même valeur dans les différentes tables qui sont dans des bases de données différentes
- 25. MySQL JOIN deux tables
- 26. joindre deux tables MySQL
- 27. Fusionner deux tables MySQL
- 28. MYSQL - Concaténer deux tables
- 29. fusionner deux tables avec la même structure
- 30. Comment identifier les champs de différentes tables portant le même nom dans un résultat de requête JOIN?
Pourriez-vous être sur la nature de ce problème un peu plus précis et pourquoi vous voulez faire ce? La "meilleure" solution pourrait en dépendre ... – FrustratedWithFormsDesigner