php - 加入三个不能正常工作的表Mysql
问题描述
我想从三个表中获取数据,但给了我错误的结果,我正在使用表“chairs”、“preBooking”、“usr_booking”
这是我的桌子“椅子”
id chairNumber status vendorId
1 1 2 3018
2 2 1 3018
3 3 2 3018
4 4 1 3018
5 1 1 3020
这是我的表“usr_booking”
id chair_number vendorId serviceStatus
1 2 3018 1
2 4 3018 1
这是我的“预订前”表
id userId vendorId serviceName chairNumber paymentType` serviceDate
1 123 3018 ABC 1 CASH 2020-06-06
现在我想获取供应商“3018”(动态)的详细信息,我想要所有椅子(来自椅子表)以及来自“usr_booking”和“preBooking”表的匹配记录,这是我尝试过的代码
SELECT c.chairNumber
, c.status chairAvailability
, pb.chairNumber preBookingchairNumber
, ub.serviceStatus Bookingavailability
, ub.serviceName
, ub.chair_number BookingChairNumber
FROM chairs c
LEFT
JOIN usr_booking ub
ON c.chairNumber = ub.chair_number
LEFT
JOIN preBooking pb
ON c.chairNumber = pb.chairNumber
WHERE c.vendorId = 3018
ORDER
BY c.chairNumber ASC
但是向我显示错误的结果,我得到以下结果
chairNumber chairAvailability preBookingchairNumber Bookingavailability serviceName BookingChairNumber
1 1 1 NULL NULL NULL
1 1 1 NULL NULL NULL
2 1 2 NULL NULL NULL
3 2 3 NULL NULL NULL
4 2 4 Inprocess Hair Cut 4
5 1 NULL NULL NULL NULL
“BookingChairNumber”列显示正确数据但“preBookingchairNumber”显示错误结果,应该只有“1”,“chairNumber”重复2次,我错在哪里?先感谢您。
解决方案
推荐阅读
- python - 无法在 django 中检查多行字符串
- amadeus - 如何使用自助服务 API 获取现有办公室 ID 的价格
- angular - 根据从 Okta Angular 8 收到的标志路由用户
- python - 如何处理线性回归中的日期字段
- excel - 在excel中计算单元格区域中超过2个字符的单词数
- nginx - 在闪亮的服务器不工作的情况下,在 NGINX 中将 HTTP 重定向到 HTTPS
- javascript - jQuery:如何在文件上传后启用保存 btn
- java - 安装没有成功。无法安装应用程序。APK列表
- c++ - 如何在 C++ 中解决循环依赖
- r - 如何使 R Studio Server 加载时间更快?