У меня есть три таблицы:
CREATE TABLE Volunteers (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(30) NOT NULL,
phoneNumber varchar(100) NOT NULL,
PRIMARY KEY (id),
)
CREATE TABLE Lists (
id int(11) NOT NULL AUTO_INCREMENT,
listName varchar(50) NOT NULL,
PRIMARY KEY (id)
)
CREATE TABLE VolunteerLists(
list int(11) NOT NULL,
volunteer int(11) NOT NULL,
PRIMARY KEY (list,volunteer),
FOREIGN KEY (list) REFERENCES Lists(id),
FOREIGN KEY (volunteer) REFERENCES Volunteers(id),
)
Тогда у меня есть таблица волонтеров:
1, David, 555-5555555
2, Joe, 444-4444444
в таблице списков:
1, visitors
2, deliveries
3, cleaning
в списках добровольцевтаблица:
1,1
1,2
2,1
2,3
Как я могу получить мои данные в следующем формате:
VolunteerID VolunteerName visitors deliveries cleaning
1 David TRUE TRUE FALSE
2 Joe TRUE FALSE TRUE
Я знаю, что могу использовать левое соединение, чтобы получить это, если я знаю идентификаторы списка, носписки являются динамическими, и я не хочу жестко кодировать это.Я могу запросить базу данных, чтобы получить списки, а затем построить запрос в php на основе этого, но есть ли более эффективный способ сделать это?