【发布时间】:2023-03-28 22:04:01
【问题描述】:
我们正在构建一个调度程序系统,并且在一些情况下,我们试图从表格中获取一些要显示的笔记。我们查看了其他答案,但似乎没有一个与这个问题完全匹配。
bookings 表包含对客户备注(如果存在)和造型师备注(如果存在)的数字引用。
notes 表包含客户和造型师备注,每个备注都由唯一的数字索引索引
当我们只想阅读客户注释时,我们的查询已经工作了:
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;
使用这个逻辑,我们可以从 php 中的 results 数组中访问 cient 笔记,就像:$results_array['note']
我们还希望能够获得该预订的造型师备注,例如 $results_array['stylist_note']。
这次我们如何再次加入笔记表:
LEFT JOIN notes ON bookings.stylistNotes = notes.notesID
但可以将这些造型师备注与客户备注分开引用。
非常感谢您的帮助。
【问题讨论】:
标签: mysql join normalization left-join