我在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)?
当然。将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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。