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中文网其他相关文章!