Конечно, потому что вы не указали, как были связаны таблицы!
SELECT * FROM person,address
Приведенный выше запрос просто возвращает каждого человека, объединенного с каждым адресом.Он игнорирует любые взаимосвязи между таблицами, и если будет 200 человек и 100 адресов, то получится 20000 результатов каждого человека по каждому адресу.Каждое имя будет повторяться 100 раз, по одному на каждый адрес.Каждый из адресов будет повторяться 200 раз, по одному на каждого человека.Даже если вы объявили внешние ключи и т.д. между таблицами - они не имеют значения;mysql не будет использовать их для определения связей между таблицами.В базе данных должно быть четко указано , какой столбец человека связан с каким столбцом адреса:
SELECT * FROM person p INNER JOIN address a on p.home_address_id = a.id
Таблицы можно объединять несколько раз:
SELECT * FROM
person p
INNER JOIN address ha on p.home_address_id = ha.id
INNER JOIN address wa on p.work_address_id = wa.id
Пожалуйста, прочитайте, усвойте, поймите и перепишите ваш запрос, чтобы вы явно объявили, какой столбец в event_session
относится к какому столбцу в event_attendee