首页 > 解决方案 > 加入三个不能正常工作的表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次,我错在哪里?先感谢您。

标签: phpmysql

解决方案


推荐阅读