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());


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

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

Войти через центр авторизации
Похожие вопросы
ЭР-Телеком Пермь
от 80 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
DANYCOM Краснодар
от 50 000 до 100 000 ₽
02 апр. 2020, в 09:54
1000 руб./за проект
02 апр. 2020, в 09:18
1000 руб./за проект
02 апр. 2020, в 08:52
1200 руб./в час