Обычно вы не организовали бы свою базу данных SQL таким способом. То, что вы описываете, это две сущности (Встреча и Участник), которые имеют отношение один ко многим. то есть собрание может иметь ноль или более участников. Для моделирования этого в SQL вы должны использовать три таблицы: таблицу собраний, таблицу участников и таблицу MeetingParticipant. Таблица MeetingParticipant содержит связи между собраниями и участниками. Таким образом, вы можете иметь что-то вроде этого (извините за любые ошибки синтаксиса SQL)
create table Meeting
(
MeetingID int,
Name varchar(50),
Location varchar(100)
)
create table Participant
(
ParticipantID int,
FirstName varchar(50),
LastName varchar(50)
)
create table MeetingParticipant
(
MeetingID int,
ParticipantID int
)
Чтобы заполнить эти таблицы, вы должны сначала создать участников:
insert into Participant(ParticipantID, FirstName, LastName) values(1, 'Tom', 'Jones')
insert into Participant(ParticipantID, FirstName, LastName) values(2, 'Dick', 'Smith')
insert into Participant(ParticipantID, FirstName, LastName) values(3, 'Harry', 'Windsor')
и создайте собрание или два
вставить в Meeting (MeetingID, Name, Location) значения (10, «Обучение SQL», «Комната 1»)
вставить в Meeting (MeetingID, Name, Location) значения (11, «Обучение SQL», «Комната 2»)
и теперь добавьте некоторых участников к собраниям
insert into MeetingParticipant(MeetingID, ParticipantID) values(10, 1)
insert into MeetingParticipant(MeetingID, ParticipantID) values(10, 2)
insert into MeetingParticipant(MeetingID, ParticipantID) values(11, 2)
insert into MeetingParticipant(MeetingID, ParticipantID) values(11, 3)
Теперь вы можете выбрать все встречи и участников для каждой встречи с помощью
select m.MeetingID, p.ParticipantID, m.Location, p.FirstName, p.LastName
from Meeting m
join MeetingParticipant mp on m.MeetingID=mp.MeetingID
join Participant p on mp.ParticipantID=p.ParticipantID
выше следует произвести
MeetingID ParticipantID Location FirstName LastName
10 1 Room 1 Tom Jones
10 2 Room 1 Dick Smith
11 2 Room 2 Dick Smith
11 3 Room 2 Harry Windsor
Если вы хотите узнать все собрания, в которых участвует «Дик Смит», вы напишите что-то вроде этого
select m.MeetingID, m.Location
from Meeting m join MeetingParticipant mp on m.MeetingID=mp.ParticipantID
where
mp.ParticipantID=2
и получите
MeetingID Location
10 Room 1
11 Room 2
Я пропустил важные вещи, такие как индексы, первичные ключи и пропущенные атрибуты, такие как даты собраний, но это понятнее без всякой липкости