Rikisan
@Rikisan
техник-программист

Не работает create temporary table в php. Что не так?

Сокращаю время запроса:
$inquiry_tmp = "create temporary table tmp_table AS (
SELECT m_arrival.arrival_id as root, m_arrival.materials_id, arrival_quantity, materials_name, IFNULL((arrival_quantity - SUM(expense_quantity )),arrival_quantity) as quantity , measure_name, /*arrival_price/exchange as price,*/0 as price_tmp, expense_quantity, expense_id, m_arrival.currency_id, m_arrival.arrival_date, m_arrival.arrival_price 
FROM m_arrival
left JOIN m_expense ON m_arrival.arrival_id = m_expense.arrival_id 
/*INNER JOIN m_exchange ON m_arrival.currency_id = m_exchange.currency_id and MONTH(m_arrival.arrival_date) = MONTH(m_exchange.exchange_date) and YEAR(m_arrival.arrival_date) = YEAR(m_exchange.exchange_date)*/
INNER JOIN m_materials ON m_arrival.materials_id = m_materials.materials_id
INNER JOIN m_measure ON m_materials.measure_id = m_measure.measure_id
left join m_group using (group_id)
GROUP BY m_arrival.arrival_id
HAVING expense_quantity is NULL or AVG(arrival_quantity) > SUM(expense_quantity )
ORDER BY SUBSTRING_INDEX(materials_name, ' ', 1), 
CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(materials_name, ' ', 2), ' ', -1), 'ф', -1), 'Ф', -1), 'М', -1), 'К', -1), UNSIGNED),
CONVERT(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(materials_name, SUBSTRING_INDEX(materials_name, ' ', 1), -1) , ' ', 2), SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(materials_name, SUBSTRING_INDEX(materials_name, ' ', 1), -1) , ' ', 2), 'х', 1), -1), 'х', 2), 'х', -1), UNSIGNED),
SUBSTRING_INDEX(materials_name, SUBSTRING_INDEX(materials_name, ' ', 2), -1), price_tmp DESC)";
$inquiry_stock = "SELECT materials_id, quantity, materials_name, measure_name, (arrival_price/exchange) as price
FROM tmp_table
INNER JOIN m_exchange ON tmp_table.currency_id = m_exchange.currency_id and MONTH(tmp_table.arrival_date) = MONTH(m_exchange.exchange_date) and YEAR(tmp_table.arrival_date) = YEAR(m_exchange.exchange_date)";
$tmp_stock = mysql_query($inquiry_tmp, $success) || die(mysql_error());
$stock = mysql_query($inquiry_stock, $success) || die(mysql_error());


Столкнулся с проблемой что он не видит временную таблицу. Подскажите что можно сделать
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
1. У таракана уши не в ногах, и любые запросы в пхп прекрасно работают.
2. Не надо пытаться выглядеть модным пацаном, и писать две палочки там где должно быть or.
3. После получения сообщения об ошибке её надо прочитать и исправить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы