2014-11-04 6 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

Это не полностью решить (группировать все результаты в один), но помогла к решению. Спасибо –

+0

обновите свой вопрос..поставьте свой результат и опубликуйте, чего вы хотите достичь – CodeSlayer

Смежные вопросы