2016-05-10 5 views
0

Я пытаюсь объединить три таблицы с одним запросом на базах Int = Json Проблема, запрос показывает только одну запись и игнорирование другой из-за GROUP_CONCATSql GROUP_CONCAT запрос с присоединиться

SELECT tour_package.id, tour_package.description AS description, 
     tour_package.NAME AS name, 
     Group_concat(DISTINCT(destination_continent.NAME)) AS continent_name, 
     Group_concat(DISTINCT(travel_style.NAME)) AS travel_style_name, 
     tour_package.img_path_thumb AS img_path_thumb 
FROM tour_package 
LEFT JOIN destination_continent 
    ON Find_in_set(destination_continent.id, Replace(Replace(Replace(tour_package.continent_id, '\[', '') , '\]', '') , '"', '')) 
LEFT JOIN travel_style 
    ON Find_in_set(travel_style.id, Replace(Replace(Replace(tour_package.travel_style_id, '\[', '') , '\]', '') , '"', '')) 
WHERE `tour_package`.`DELETE` = 0 
     && `destination_continent`.`DELETE` = 0 
     && `travel_style`.`DELETE` = 0 

Я не так хорошо в sql, я знаю, что это не правильный путь, использование внешнего ключа - это правильное решение для этого, так или иначе я воспринимаю это как обучение.

Любая доля один плз, если у вас какие-либо идеи

Db record image

DB query image

+0

Я не могу прочитать эти крошечные изображения на своем телефоне, поэтому я не могу представить вам какие-либо сведения о ваших объединениях. –

ответ

0

Совершенно независимо от неэффективного присоединяется вы использовали, добавьте группу по статье, как этот

GROUP BY 
    tour_package.id 
    , tour_package.description 
    , tour_package.NAME 
    , tour_package.img_path_thumb 

Этот c lause будет определять уникальные атрибуты каждой строки.

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