我有三(3)表:MySQL的左连接不工作
我想如果车辆被映射到用户userCarMapping
表,从表vehicle
和firstname
和last name
从userInfo
表中获取所有车辆。
我写此查询:
SELECT `vehicle`.`vehicleId`, `vehicle`.`modelId`, `vehicle`.`RegNo`, `userInfo`.`firstName`, `userInfo`.`lastName`
FROM `vehicle`
LEFT JOIN `userCarMapping` ON `vehicle`.`vehicleId` = `userCarMapping`.`vehicleId`
LEFT JOIN `userInfo` ON `userCarMapping`.`userId` = `userInfo`.`userId`
WHERE `vendorUserId` = '1' AND `vehicle`.`status` = 'approved' AND `userInfo`.`status` = 'approved'`
和我得到这个输出,其中,因为我希望所有的车辆从vehicle
表。
[MySQL](https://dev.mysql.com/doc/refman/5.7/en/)和[SQL Server](https://docs.microsoft.com/zh-cn/sql/t -sql/language-reference)是不同公司生产的不同软件包。即使它们都实现SQL,它们也会以不同的方式扩展它们,有时它们会使用不同的语法约定来使查询之间的查询不兼容。请仅使用与您使用的软件相匹配的标签。 – axiac
'AND userInfo.status ='approved'':这会将你的'left join'变成'inner join'。将此条件移至连接条件。 – HoneyBadger
建议:用'AND'替换WHERE' –