Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist es möglich, eine MySQL-Spalte zu haben, die mehrere Werte als Fremdschlüssel enthält?

Wenn Sie keine "Mittelmann"-Tabelle zum Verknüpfen der beiden Tabellen erstellen möchten, können Sie einen kommagetrennten Wert in das Feld einfügen, Sie müssten nur den find_in_set verwenden mysql-Funktion beim Ausführen von Abfragen

FIND_in_set VERWENDEN

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 gruppiert ein Feld und trennt sie durch ein Trennzeichen, Standard ist ,