Задавайте вопросы, мы ответим
Вы не зашли.
Есть две таблицы:
2. performance
performance_id | name
3. product_performance_description
product_id | performance_id | value
Необходимо сделать из этих двух таблиц одну с полями name из первой и value из второй. Пишу следующий запрос:
SELECT p.name, ppd.value FROM performance p LEFT JOIN product_performance_description ppd ON (ppd.performance_id = p.performance_id)
С помощью этого запроса выводятся только значения performance_id, которые есть в таблице product_performance_description. если в таблице performance есть performance_id, которого нет в product_performance_description, то он не выводится. Как сделать так, выводились все значения из таблицы performance и если для них нет соответствий из таблицы product_performance_description, то выводились нули.
Неактивен
Забыл написать что идет условие для определенного продукта. Я просто это убрал из запроса
Неактивен
Выполните запрос из первого поста в том виде как привели его и увидите, что он работает как вы и хотите.
Неактивен
Не знаю что я делаю не так. Но в таблице product_performance_description есть продукт с определенным номером у него 12 характеристик performance. У каждой есть значение. Я делаю запрос:
SELECT p.name, ppd.value FROM " . DB_PREFIX . "performance p LEFT JOIN " . DB_PREFIX . "product_performance_description ppd ON (ppd.performance_id = p.performance_id) WHERE ppd.product_id = '" . (int)$product_id . "'
Выводит только те поля, которые есть у этого продукта в таблице product_performance_description. Хотя в таблице performance 18 полей. И по идее нужно все 18 чтобы вывело, а вместо тех где нет значений вставило нули.
Неактивен
Неактивен
Вываливается ошибка:
Error: Unknown column 'ppd.performance_id' in 'on clause'
Неактивен
отредактировал
Неактивен
Да, все работает! Ура!!! Только теперь новая проблема в таблице колонка со значениями value называется почему-то не value, а ifnull(ppd.value,0). Как сделать так чтобы она называлась value.
Неактивен
ifnull(ppd.value,0) as `нужное вам название`
Неактивен
Спасибо большое. Разобрался. Пол дня потратил. Везде написано что если использовать LEFT JOIN и будут отсутствовать значения как в моем случае, то он вставит нули. Ничего подобного.
Неактивен