我有三(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' –