首页 > 数据库 > mysql教程 > 为什么我的左连接不返回左表中的所有行?

为什么我的左连接不返回左表中的所有行?

Patricia Arquette
发布: 2024-12-28 15:01:14
原创
999 人浏览过

Why Doesn't My Left Join Return All Rows From the Left Table?

左联接未返回所有行:解决问题

如上一个线程中所述,左联接中不存在所有行查询可能源于放置不当的 WHERE 子句。在本例中,查询旨在从“jos_hp_properties”表中提取数据,并根据字段列等于 23 选择性地从“jos_hp_properties2”表中选择名为“room_price_high”的值。

要解决此问题发出并确保从第一个表返回所有行,WHERE 条件应在 LEFT OUTER JOIN 之后从其原始位置重新定位JOIN 子句本身内的语句。修改后的查询应类似于以下内容:

SELECT pr.*, pr7.value AS `room_price_high`
  FROM `jos_hp_properties` pr
       LEFT JOIN `jos_hp_properties2` pr7 
       ON pr7.property=pr.id
   AND 
       pr7.field=23
登录后复制

通过在 JOIN 中合并 WHERE 条件,查询变得更加明确,并指示数据库仅从第二个表中检索字段列等于 23 的行这可确保返回第一个表中的所有行,无论第二个表中是否存在匹配值。因此,根据 field=23 条件,第一个表中的行将返回第二个表中没有匹配行的相应 NULL 值。

以上是为什么我的左连接不返回左表中的所有行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板