У меня есть следующие таблицы:
slots
= идентификатор, время
child
= id, parent_id, имя, форма
parent
= id, name, contact_details
teacher
= идентификатор, имя, тема
appointments
= id, child_id, slot
Я использую следующий код для отображения списка бронируемых встреч:
SELECT s.id, DATE_FORMAT( s.time, '%l:%i' ) AS TIME, p.name
FROM slots AS s
LEFT JOIN appointments AS a ON a.slot = s.id
LEFT JOIN child AS c ON a.child_id = c.id
LEFT JOIN parent AS p ON c.parent_id = p.id
Здесь отображается список всех моих слотов для встреч и несколько с именами родителей.
Что бы я хотел сделать, для конкретного учителя , отобразить список всех мест для встреч, и если некоторые из них были заполнены, я бы хотел показать имя родитель ребенка, который забронировал этот слот .
Например,
Назначения мисс Брумфилд:
id TIME name
1 4:00 Parent One
2 4:05 NULL
3 4:10 Parent Two
4 4:15 NULL
5 4:20 NULL
6 4:25 NULL
7 4:30 NULL
Возможно ли это? Я попытался использовать предложение WHERE, но в нем просто отображаются забронированные встречи, а не полный список доступных раз.
Таким образом, я понял, что я совершенно уверен, что мои СОЕДИНЕНИЯ совершенно неверны!
ОБНОВЛЕНИЕ: таблица слотов выглядит следующим образом:
SQL result
Host: localhost
Generation Time: Mar 05, 2012 at 11:43 AM
Generated by: phpMyAdmin 3.4.9 / MySQL 5.5.20
SQL query: SELECT * FROM `slots` LIMIT 0, 30 ;
Rows: 30
id time
1 2012-03-15 16:00:00
2 2012-03-15 16:05:00
3 2012-03-15 16:10:00
4 2012-03-15 16:15:00
5 2012-03-15 16:20:00
6 2012-03-15 16:25:00
7 2012-03-15 16:30:00
8 2012-03-15 16:35:00
9 2012-03-15 16:40:00
10 2012-03-15 16:45:00
11 2012-03-15 16:50:00
12 2012-03-15 16:55:00
13 2012-03-15 17:00:00
14 2012-03-15 17:05:00
15 2012-03-15 17:10:00
16 2012-03-15 17:15:00
17 2012-03-15 17:20:00
18 2012-03-15 17:25:00
19 2012-03-15 17:50:00
20 2012-03-15 17:55:00
Заранее спасибо,