#opencart #opencart-3
Вопрос:
Я столкнулся со странной проблемой с запросом OpenCart (v: 3.0.3.7). Я пытаюсь извлечь данные таблицы product и product_descrition, используя Inner Join
, но получаю 0 результатов. Этот запрос работает нормально, если я использую Left Join
вместо Inner Join
. Также запрос показывает результат для product_id, но нулевые значения в pd.name.
Примечание: Тот же запрос работает, когда я запускаю его непосредственно в phpMyAdmin
SELECT p.product_id, pd.name FROM oc_product p Inner JOIN oc_product_description pd ON (p.product_id = pd.product_id) AND ( pd.name LIKE "%test%") AND p.manufacturer_id = "14" GROUP BY p.product_id ORDER BY p.product_id ASC
Ответ №1:
Зачем вам это нужно INNER JOUN
? использовать LEFT JOIN
… Вы можете попробовать это…
SELECT DISTINCT * FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) AND pd.language_id = '" . (int)$this-gt;config-gt;get('config_language_id') . "' GROUP BY p.product_id ORDER BY p.product_id ASC
Комментарии:
1. с помощью left join я получаю все записи из таблицы products, даже если имя продукта не существует в таблице product_description. Как я уже упоминал, левое соединение работает нормально. Я уверен, что эта проблема связана с opencart, так как тот же запрос отлично работает с phpmyadmin