Vous avez ceci:mysql select update
Table a
ID RelatedBs
1 NULL
2 NULL
Table b
AID ID
1 1
1 2
1 3
2 4
2 5
2 6
Besoin Table a d'avoir une liste séparée par des virgules comme indiqué dans le tableau b. Et puis le tableau B deviendra obsolète:
Table a
ID RelatedBs
1 1,2,3
2 4,5,6
Cela ne rund par tous les enregistrements, mais juste annonce un 'b' à 'table un'
UPDATE a, b
SET relatedbs = CONCAT(relatedbs,',',b.id)
WHERE a.id = b.aid
MISE À JOUR: Merci, 3 réponses (marqué le plus ancien comme réponse)! GROUP_CONCAT est celui à utiliser. Pas besoin d'insérer des virgules entre les ids en utilisant relatedids = CONCAT (relatedids, ',', next_id) qui est fait automatiquement par GROUP_CONCAT.
Pour être honnête, c'est probablement un mauvais choix dans la façon dont vous gérez votre base de données. Pour ne pas dire que vous ne pouvez pas le faire, mais l'idée des clés étrangères est de faire exactement ce que vous avez, pas ce que vous essayez de faire. Quelle est votre motivation? Vos requêtes seront considérablement plus compliquées si vous avez besoin d'obtenir le 'relatedBs' et de les utiliser dans le SQL. –
True. Mais j'utilise toujours des identifiants séparés par des virgules assez souvent quand il s'agit d'une relation un-deux-plusieurs. Quand c'est une relation many-2-many, j'utilise toujours une table mm pour gérer les relations. – Tillebeck