开发者社区> 问答> 正文

左联接不返回所有行

我在MySQL中有以下查询:

SELECT pr.*, pr7.value AS room_price_high FROM jos_hp_properties pr LEFT OUTER JOIN jos_hp_properties2 pr7 ON pr7.property=pr.id WHERE pr7.field=23 该jos_hp_properties表有27行,但查询仅返回1行。基于这个问题,我认为可能是由于WHERE子句。该jos_hp_properties2表具有字段id,属性,字段,值,其中field是第三个表的外键(我不需要从中获取数据)。

有没有一种方法可以从第一个表中选择所有行,包括表#2中字段为23的值(如果没有字段23,则为NULL)?

展开
收起
保持可爱mmm 2020-05-10 21:50:23 281 0
1 条回答
写回答
取消 提交回答
  • 当然。将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来源:stack overflow

    2020-05-10 21:50:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载