Как объединить 1 таблицу дважды в одном запросе и сохранить результаты отдельно - PullRequest
3 голосов
/ 23 апреля 2010

мы строим систему планировщика и имеем пару ситуаций, когда мы пытаемся получить некоторые заметки из таблицы для отображения.Мы рассмотрели другие ответы, и ни один из них, по-видимому, не совсем соответствует этой проблеме.

Таблица заказов содержит числовую ссылку как на заметку клиента (если имеется), так и на заметку стилиста (если имеется).

В таблице заметок содержатся заметки как клиента, так и стилиста, каждая из которых проиндексирована уникальным числовым индексом

Наш запрос работает, когда мы просто хотим прочитать в заметках клиента:

SELECT bookings.bookingID, UNIX_TIMESTAMP(bookings.startDate) AS start_date, UNIX_TIMESTAMP(bookings.endDate) as end_date, clientDetails.firstName, clientDetails.lastName, clientDetails.phone1, clientDetails.phone2, clientDetails.email, services.name, services.serviceID, cNotes.note as client_notes, sNotes.note as stylist_note
FROM bookings 
LEFT JOIN clientDetails ON bookings.clientID = clientDetails.clientID
LEFT JOIN services ON bookings.serviceID = services.serviceID
LEFT JOIN notes ON bookings.clientNotes = notes.notesID
WHERE bookings.startDate >= '" . $start_date . "' AND  bookings.endDate <= '" . $end_date . "' AND bookings.stylistID = '" . $stylist_id . "'
ORDER BY bookings.startDate ASC;

Используя эту логику, мы можем получить доступ к заметкам cient из массива результатов в php просто как: $ results_array ['note']

Что мы также хотим сделать, это получить заметку стилиста дляэто бронирование, что-то вроде $ results_array ['stylist_note'].

Как мы можем снова присоединиться к таблице заметок на этот раз, используя:

LEFT JOIN notes ON bookings.stylistNotes = notes.notesID

НО иметь возможность ссылаться на эти заметки стилиста отдельно от заметок клиента.

Большое спасибоза любую помощь.

1 Ответ

3 голосов
/ 23 апреля 2010

Вы должны иметь возможность псевдоним таблицы и столбцов:

SELECT ..., stylistnotes.note AS stylist_note
FROM ...
LEFT JOIN notes stylistnotes ON bookings.stylistNotes = stylistnotes.notesID
...