MySQL加入和EXISTS组合

时间:2015-07-18 08:46:43

标签: mysql join exists

案例 我得到以下查询:

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

1 个答案:

答案 0 :(得分:1)

joininner 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