mysql-如何在同一查询中两次联接1个表并将结果分开

前端之家收集整理的这篇文章主要介绍了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

猜你在找的MySQL相关文章