2014-11-04 210 views
0

我正在做一些表的连接,并希望根据表中的ENUM列过滤结果,其值为0,1。MySQL - 查询返回不匹配的行

这是查询。

SELECT dpc.`id` AS parent_id, 
    dpc.`name` AS parent_name, 
    cp.`id` AS child_id, 
    cp.`name` AS child_name, 
    cp.`stub` AS stub, 
    cp.`active` AS active, 
    caf.`aspect_id` AS aspect_id, 
    am.`name` AS aspects, 
    GROUP_CONCAT(nfw.`aspect_values`) AS aspect_childs 
FROM `category_parent` AS cp 
JOIN `deals_parent_cat` AS dpc ON cp.`parent_id` = dpc.`id` 
JOIN `category_aspect_filters` AS caf ON caf.`cat_id` = cp.`id` 
JOIN `aspect_master` AS am ON am.`id` = caf.`aspect_id` 
LEFT JOIN `navigation_filters_weightage` AS nfw ON nfw.`cat_id`= cp.`id` 
AND nfw.`aspect_id` = am.`id` AND cp.`active`="1" 
    GROUP BY parent_id,child_id,aspect_id 
    ORDER BY parent_name,cp.`order`,aspects 

我已经把条件查询返回只具有cp.active="1",其中有一个“0”值还是我得到列的结果。

这里是输出:

Screenshot

可以请你什么可能是错误的查询帮助。

回答

1

这是您的查询

AND nfw.`aspect_id` = am.`id` AND cp.`active`="1" 

也许尝试这一个

where nfw.`aspect_id` = am.`id` AND cp.`active`="1" 
+0

它并没有完全解决(分组的所有成果转化为一个),但对解决方案帮助。谢谢 – 2014-11-04 06:29:11

+0

更新你的问题..发布你的结果并发布你想实现什么 – CodeSlayer 2014-11-04 06:33:05