Помощь Правильный запрос к БД

r_vyacheslav

Гуру форума
Регистрация
18 Авг 2015
Сообщения
174
Реакции
67
Привет всем, опять прошу помощи у тех кто разбирается и даст правильные корректировки, или подскажет куда смотреть в данной ситуации.

Создал дополнительные поля для производителей, мета, дескрипшин, кей... При конструкции ниже работает как нужно... Но суть в чем, при наполнении магазина производители создаются автоматически исходя из загружаемых товаров, но у менять при заполнении производителя есть ещё обязательное поле "Meta" которое обязательно к заполнению.... Если же поле не заполнено то почему-то я получаю уведомления что данный производитель не найден. Ну и если значения меты заполнено то все работает как нужно и производитель подтягивается.

Имею такую конструкцию запроса к БД:
PHP:
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) JOIN " . DB_PREFIX . "manufacturer_description md ON (md.manufacturer_id='" . (int)$manufacturer_id . "') AND (md.language_id='" . (int)$this->config->get('config_language_id') . "')  WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");[/FONT][/SIZE][/FONT]
[SIZE=4][FONT=Open Sans][FONT=Tahoma]


А вот оригинальный запрос из версии OC 2.0.3.1
PHP:
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

Как вы заметили разница только вот в этом:
PHP:
JOIN " . DB_PREFIX . "manufacturer_description md ON (md.manufacturer_id='" . (int)$manufacturer_id . "') AND (md.language_id='" . (int)$this->config->get('config_language_id') . "')

Как правильно откорректировать запрос чтобы если значение meta не заполнено то выполнять запрос аналогичный коробочному варианту или может дополнительное условие?...
 
Нужно делать объединение с таблицей manufacturer_description используя LEFT JOIN.
Весь запрос не проверял, но способ объединения JOIN точно не для этого случая.
 
Разобрался чуть раньше чем прочитал Ваш ответ). Действительно именно так и сделал после публикации темы все заработало как нужно).
 
Назад
Сверху