MYSQL LEFT JOIN没有显示Null Rows

时间:2018-02-16 22:04:15

标签: php mysql

我有2张桌子。 amenities_posts包含所有可用的设施和property_amenities仅包含物业设施。 我想运行一个连接查询,如果在properties_amenities中找不到行,则返回来自amenities_posts的所有行,并返回NULL。

当前查询:

SELECT properties_amenities.*, amenities_posts.type, amenities_posts.grouped, amenities_posts.title, properties_amenities.property_id 
FROM properties_amenities 
LEFT JOIN amenities_posts ON properties_amenities.amenity_id = amenities_posts.id
WHERE properties_amenities.property_id=318 OR properties_amenities.property_id IS NULL 
ORDER BY amenities_posts.grouped DESC, amenities_posts.sortby ASC;

此查询仅返回properties_amenities的行,而不是所有带空值的设施行。

1 个答案:

答案 0 :(得分:0)

如果您想显示来自amenities_posts的所有行,则需要转到LEFT JOIN的 left 侧。

...
FROM amenities_posts
LEFT JOIN properties_amenities ...

左连接选择左侧的所有行,只选择右侧的匹配行。