Это неправильный способ продолжить. Вы должны думать с точки зрения нормализации базы данных : у вас есть отношения между person
и event
, где у каждого человека может быть много событий, и у каждого события может быть много людей. Для моделирования этого
отношения, вам нужен стол для бриджа, например:
CREATE TABLE attendance (
id INT AUTO_INCREMENT,
person_id INT NOT NULL,
event_id INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY fk_person (person_id) REFERENCES person (id),
FOREIGN KEY fk_event (event_id) REFERENCES event (id)
);
ALTER TABLE attendance
ADD CONSTRAINT attendance_pk UNIQUE (person_id, event_id);
Таблица моста содержит автоинкрементный идентификатор, внешние ключи, которые ссылаются на 2 другие таблицы, и уникальное ограничение для предотвращения дублирования.
Теперь скажите, что вы хотите перечислить имена всех людей, которые участвовали в данном событии:
SELECT p.name
FROM
event AS e
INNER JOIN attendance AS a ON a.event_id = e.id
INNER JOIN person AS p ON p.id = a.person_id
WHERE e.name = 'The Foo Event';