gpt4 book ai didi

MYSQL 左连接不起作用

转载 作者:行者123 更新时间:2023-11-29 06:54:45 24 4
gpt4 key购买 nike

我有三 (3) 个表:

  • 车辆表: Vehicle table

  • userCarMapping 表: userCarMapping

  • userInfouserInfo

我想从vehicle表中获取所有车辆,并从userInfo表中获取firstnamelast name,如果车辆映射到 userCarMapping 表中的用户。

我写了这个查询:

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 表中的所有车辆。

output

最佳答案

当您在 where 中使用 userinfo 表条件时,它只会返回满足条件的行。但是如果您使用该 userinfo 条件in join 而不是 where ,然后表连接满足条件的行,例如 userinfo 表中有 5 条记录,并且 status active 的记录只有两条,然后 join 只考虑这 2 条用于连接的行。

尝试以下查询:

 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` AND `userInfo`.`status` = 'approved'`
WHERE `vendorUserId` = '1' AND `vehicle`.`status` = 'approved'

希望您能理解答案。

关于MYSQL 左连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46073546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com