Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-il possible d'avoir une colonne MySQL contenant plusieurs valeurs en tant que clés étrangères ?

Si vous ne souhaitez pas créer une table "intermédiaire" pour relier les deux tables, vous pouvez avoir une valeur séparée par des virgules dans le champ, il vous suffit d'utiliser le find_in_set fonction mysql lors des requêtes

UTILISER find_in_set

SELECT
   log.user_id, log.activity_id, log.tags,
   GROUP_CONCAT(tags.name) as taggedNames //This assumes there is a field called `name` in tags table
FROM
   log
LEFT JOIN tags
ON
   FIND_IN_SET(tags.tag_id,log.tags)
GROUP BY
   log.activity_id

GROUP_CONCAT regroupera un champ et les séparera par un délimiteur, la valeur par défaut est ,