Я пытаюсь добавить в другую таблицу в уже рабочий запрос, но почему-то я получаю сообщение об ошибке. Я не уверен, если запрос достаточно, чтобы пойти на так как она используется другой функцией, но я думаю, что это может быть просто мой запрос ..Что не так с моим SQL-запросом?
Вот исходный запрос, который работает:
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_model,
p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status,
s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status,
s.specials_new_products_price, p.products_price) as final_price
from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p
left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id
left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id,
" . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
where p.products_status = '1' and p.products_id = p2c.products_id and
pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and
p2c.categories_id = '" . (int)$current_category_id . "'";
а вот новый запрос с добавленной таблицы и где пункт (TABLE_PRODUCTS_ATTRIBUTES
является новая таблица годовых):
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_model,
p.manufacturers_id, p.products_price, pa.products_values_id, p.products_tax_class_id,
IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price,
IF(s.status, s.specials_new_products_price, p.products_price) as final_price
from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_ATTRIBUTES . " pa
left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id
left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id,
" . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
where p.products_status = '1' and p.products_id = p2c.products_id and p.products_id =
pa.products_id and pd.products_id = p2c.products_id and pd.language_id = '" .
(int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
Что случилось с моим запросом сразу?
Что говорит mysql_error()? –
Какая фактическая строка выглядит после всего, что сделано? Кроме того, SQL-инъекция - http://www.securiteam.com/securityreviews/5DP0N1P76E.html – McAden
В чем вы присоединяетесь в третьей таблице? Проблема заключается в вашем соединении ... Существует такое же количество операторов соединения, но больше таблиц, mysql не собирается знать, что вы хотите ... С левым соединением Это даст вам огромную таблицу результатов, если это действительно работает (в столбце) Посмотрите на ответ Марка. – Hituptony