mysql-如何在同一查询中两次联接1个表并将结果分开
作者:互联网
我们正在构建一个调度程序系统,并且在几种情况下我们试图从表中获取一些注释以进行显示.我们已经查看了其他答案,但似乎没有一个与这个问题完全匹配.
预订表包含对客户注释(如果存在)和造型师注释(如果存在)的数字引用.
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_array [‘note’]
我们还希望能够做的就是获得该预订的造型师注释,例如$results_array [‘stylist_note’].
这次我们如何使用以下方法再次加入注释表:
LEFT JOIN notes ON bookings.stylistNotes = notes.notesID
但是能够独立于客户注释而参考这些造型师注释.
非常感谢您的协助.
解决方法:
您应该能够为表和列添加别名:
SELECT ..., stylistnotes.note AS stylist_note
FROM ...
LEFT JOIN notes stylistnotes ON bookings.stylistNotes = stylistnotes.notesID
标签:join,left-join,normalization,mysql 来源: https://codeday.me/bug/20191210/2099293.html