Mysql
 sql >> Database >  >> RDS >> Mysql

È possibile avere una colonna MySQL contenente più valori come chiavi esterne?

Se non desideri creare una tabella "intermediario" per collegare le due tabelle, puoi avere un valore separato da virgole nel campo, devi solo usare il find_in_set funzione mysql durante l'esecuzione di query

UTENTE 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 raggrupperà un campo e lo separerà da un delimitatore, l'impostazione predefinita è ,