首页 > 数据库 > mysql教程 > 为什么我的 SQL 左连接只返回一行而不是所有行?

为什么我的 SQL 左连接只返回一行而不是所有行?

Mary-Kate Olsen
发布: 2024-12-12 13:25:14
原创
231 人浏览过

Why Does My SQL Left Join Only Return One Row Instead of All Rows?

SQL 查询未返回具有左连接的所有行

此查询旨在检索 jos_hp_properties 表(缩写为 pr)中的所有行使用 jos_hp_properties2 表中的值(缩写为 pr7),其中名为 field 的字段等于后一个表中的 23。但是,尽管 jos_hp_properties 表包含 27 行,当前查询仅返回一行。

要解决此问题,应将 WHERE 子句移至 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
登录后复制

使用此修改后的查询,WHERE 子句不再限制连接之前的结果集。相反,即使 jos_hp_properties2 表中没有字段 23 的对应行(在这种情况下,返回值将为 NULL),也会包含 jos_hp_properties 表中的行。这可确保返回第一个表中的所有行以及第二个表中所需的数据(如果适用)。

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

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