Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

É possível ter uma coluna MySQL contendo vários valores como chaves estrangeiras?


Se você não deseja criar uma tabela "intermediário" para vincular as duas tabelas, você pode ter um valor separado por vírgula no campo, basta usar o find_in_set função mysql ao fazer consultas

USANDO 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 agrupará um campo e os separará por um delimitador, o padrão é ,