案例 我得到以下查询:
SELECT * FROM `parking_parking`
JOIN `parking_address` ON `parking_parking`.`parking_address` = `parking_address`.`address_id`
WHERE `parking_id` = 3
此查询选择有关停车的信息(有关停车本身的地址和数据)
总的来说......工作正常!
问题
虽然有一个小问题.. 每当从数据库中删除地址并且停车本身仍然存在时。整个查询返回0.只是因为它查找并且 A AND B 为链接。但如果没有找到第二个也不会被退回。
现在有一个解决方案.. 的 EXISTS
但是我不知道如何使用它。
我试过了:
EXISTS JOIN
JOIN EXISTS
JOIN `parking_address` ON EXISTS
但无济于事。
我希望(并猜测)我忽略了一件小事。
注意
!!我不是在现实生活中使用它! !!
SELECT * FROM
当我还处在基本的基础上时,我做了这个,我发现即使最简单的页面需要花费很长时间才能加载。
解决方案: GolezTrol
SELECT * FROM `parking_parking`
LEFT JOIN `parking_address` ON `parking_parking`.`parking_address` = `parking_address`.`address_id`
WHERE `parking_id` = 3
答案 0 :(得分:1)
将join
(inner join
的缩写)更改为left join
(= left outer join
)。这将返回所有停车,如果没有匹配的地址,则会返回地址字段null
:
SELECT * FROM `parking_parking`
LEFT JOIN `parking_address`
ON `parking_parking`.`parking_address` = `parking_address`.`address_id`
WHERE `parking_id` = 3