powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как починить #1137 ошибку?
5 сообщений из 5, страница 1 из 1
Как починить #1137 ошибку?
    #39091679
Здравствуйте!

В процедуре имеется запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT 
	x.virtuemart_product_id
	, m.virtuemart_media_id
	, m.file_url
	, m.recognized_sku		
	, min_order_number
	, foto_id
	, cnt.cnt
	, min_order_number - cnt.cnt + (foto_id - 2) as ordering
FROM new_medias m
JOIN(SELECT
		recognized_sku
		, COUNT(*) as cnt
	FROM new_medias m
	GROUP BY recognized_sku) cnt ON cnt.recognized_sku = m.recognized_sku
...


, в котором происходит двойное упоминание временной таблицы new_medias. По всей видимости именно это приводит к возникновению ошибки: автор#1137 - Can't reopen table: 'm' в результате запуска хранимой процедуры.

Скажите как можно обойти этот запрет на повторное использование таблицы? Создать другую временную таблицу для
Код: sql
1.
2.
3.
4.
5.
SELECT
	recognized_sku
	, COUNT(*) as cnt
FROM new_medias m
GROUP BY recognized_sku


и уже потом её подключать к запросу?

желаю Вам счастья
...
Рейтинг: 0 / 0
Как починить #1137 ошибку?
    #39091740
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используйте другой АЛИАС, допустим "mmm"
или убирите совсем
Код: sql
1.
2.
3.
4.
5.
SELECT
		mmm.recognized_sku
		, COUNT(*) as mmm.cnt
	FROM new_medias AS mmm
	GROUP BY mmm.recognized_sku
...
Рейтинг: 0 / 0
Как починить #1137 ошибку?
    #39091754
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, дело не в алиасе, а в том что таблица временная. Её нельзя дважды использовать в запросе, таково ограничение.
Либо создавать вторую таблицу с другим именем, либо вместо временных таблиц использовать from-подзапрос их формирующий. Второй вариант может быть шустрее (видел такое в марии5.5)
...
Рейтинг: 0 / 0
Как починить #1137 ошибку?
    #39092508
Здравствуйте!

Спасибо
Под этим:
retvizanлибо вместо временных таблиц использовать from-подзапрос их формирующий
вы имели ввиду такое:
SELECT ... FROM(SELECT ...)
?
...
Рейтинг: 0 / 0
Как починить #1137 ошибку?
    #39094225
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как починить #1137 ошибку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]