首页 > 解决方案 > MySql - 双左连接有问题

问题描述

我在获取此双左连接以获取 listingspecificsListPrice 时遇到问题,但该信息存在于表中,无法弄清楚为什么它不包含它。这是我的sql。

SELECT mls_subject_property.*, mls_images.imagePath, mls_forms_listing_specifics.listingspecificsListPrice  
FROM mls_subject_property 
LEFT JOIN mls_images ON mls_subject_property.mls_listingID = mls_images.mls_listingID 
LEFT JOIN mls_forms_listing_specifics ON mls_forms_listing_specifics.mls_listingID = mls_subject_property.mls_listingID AND mls_images.imgOrder = 0 
WHERE userID = 413 
GROUP BY mls_subject_property.mls_listingID

结果出来是这样的。。 在此处输入图像描述

所有其他领域都回来了,但它似乎不想带回这两个项目。这是另一张表的图片,以表明数据确实存在。 在此处输入图像描述

标签: mysqlleft-join

解决方案


mls_images.imgOrder = 0条件应该在 join with 中,mls_images而不是mls_forms_listing_specifics

GROUP BY如果您不使用任何聚合函数,请不要使用。用于SELECT DISTINCT防止重复。

SELECT DISTINCT mls_subject_property.*, mls_images.imagePath, mls_forms_listing_specifics.listingspecificsListPrice  
FROM mls_subject_property 
LEFT JOIN mls_images ON mls_subject_property.mls_listingID = mls_images.mls_listingID AND mls_images.imgOrder = 0
LEFT JOIN mls_forms_listing_specifics ON mls_forms_listing_specifics.mls_listingID = mls_subject_property.mls_listingID 
WHERE userID = 413 

推荐阅读