Общие > Базы данных

Проблема c create temporary

(1/2) > >>

Vivaldy:
Помгите, немогу никак понять в чем дело.

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

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

вообще не понятно... ???

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

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:
этот запрос:
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:
для тех кто на подводной лодке повторяю:

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

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

всмысле affected rows


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

--- Конец цитаты ---


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

Vivaldy:
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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

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 
Перейти к полной версии