Автор Тема: Проблема c create temporary  (Прочитано 4317 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vivaldy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема c create temporary
« : 01 Сентября 2004, 12:45:58 »
Помгите, немогу никак понять в чем дело.

делаю запрос:

SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\'

результат:
--------
|  id  |
--------
|  1  |
--------
|  2  |
--------

затем делаю такие два запроса:

CREATE TEMPORARY TABLE tempo SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\';

select * from tempo

результат:

--------
|     |
--------

т.е. говорит что таблица пуста, но почему....????
Но и не ругается вообще... просто выдает пусто.

затем делаю такие запросы:

CREATE TEMPORARY TABLE tempo SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\';

SELECT COUNT(*) FROM s LEFT JOIN lng USING (id) WHERE tempo.id IS NULL;

то в данном случае говоорт:
Error: 1109 - Unknown table \'tempo\' in where clause

вообще не понятно... ???
« Последнее редактирование: 01 Сентября 2004, 12:51:23 от Vivaldy »

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #1 : 01 Сентября 2004, 13:42:03 »
а что выдает этот запрос?

CREATE TEMPORARY TABLE tempo SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\';

всмысле affected rows

Цитировать

SELECT COUNT(*) FROM s LEFT JOIN lng USING (id) WHERE tempo.id IS NULL;
то в данном случае говоорт:
Error: 1109 - Unknown table \'tempo\' in where clause


ну здесь все правильно.
оно действительно не знает что это у тебя за таблица.
На Машине Тьюринга далеко не уедешь.

Оффлайн Vivaldy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #2 : 01 Сентября 2004, 14:08:47 »
этот запрос:
CREATE TEMPORARY TABLE tempo SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\';

ничего выдавать не должен, вообщето на сколько я знаю он должен сформировать временную таблицу с одним столбцом id и кол-вом строк в зависомости от возврата, в данном случае двумя.

т.е. таблица \'tempo\' должна существовать,так как ее создает этот запрос.

кроме того выполнение запроса:
select * from tempo  - ошибки не дает.. значит таблица всеже создана.

а когда делаешь:
SELECT COUNT(*) FROM s LEFT JOIN lng USING (id) WHERE tempo.id IS NULL
уже говорит что нет такой таблицы....

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #3 : 01 Сентября 2004, 14:21:29 »
для тех кто на подводной лодке повторяю:

а что выдает этот запрос?

CREATE TEMPORARY TABLE tempo SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\';

всмысле affected rows


Цитировать

уже говорит что нет такой таблицы...


потому что ты ее не указал в части from. поэтому оно не знает о существовании такой таблицы в запросе.
На Машине Тьюринга далеко не уедешь.

Оффлайн Vivaldy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #4 : 01 Сентября 2004, 15:59:41 »
CREATE TEMPORARY TABLE tempo SELECT lng.id_slng as id FROM lng WHERE lng.name_value=\'tbl_fpp\';

при выполнении этого запроса говорит 2 row affected

Цитировать
потому что ты ее не указал в части from. поэтому оно не знает о существовании такой таблицы в запросе.


спасибо вижу..
но почему если выполняешь потом запрос:
select * from tempo

то пусто, хотя row affected опять 2

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #5 : 01 Сентября 2004, 16:38:44 »
1. select выполняешь в той же сессии?
2. есть ли в базе таблица с названием \'tempo\', но не временная а обыкновенная?
На Машине Тьюринга далеко не уедешь.

Оффлайн Vivaldy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #6 : 01 Сентября 2004, 17:09:17 »
1. сессия одна и та же
2. в базе такой таблицы нет

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проблема c create temporary
« Ответ #7 : 02 Сентября 2004, 00:32:56 »
1. какая версия mysql?
2. можешь воспроизвести это на каком-нибудь другом сервере mysql?
На Машине Тьюринга далеко не уедешь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28