【问题标题】:MySQL Join AND EXISTS in combinationMySQL Join AND EXISTS 组合
【发布时间】:2015-10-07 23:28:57
【问题描述】:

案例 我收到以下查询:

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 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

【问题讨论】:

  • 你可能想看看左连接。

标签: mysql join exists


【解决方案1】:

joininner join 的缩写)更改为left join(=left outer join)。这将返回所有 parkings,如果没有匹配的 address,则只会为地址字段返回 null

SELECT * FROM `parking_parking`
LEFT JOIN `parking_address` 
  ON `parking_parking`.`parking_address` = `parking_address`.`address_id`
WHERE `parking_id` = 3

【讨论】:

    猜你喜欢
    • 2016-04-03
    • 1970-01-01
    • 2015-06-05
    • 2011-02-12
    • 2011-06-28
    • 2013-09-23
    • 2023-03-04
    • 2017-01-08
    • 1970-01-01
    相关资源
    最近更新 更多