Общие > Базы данных
Проблема c create temporary
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
Навигация
Перейти к полной версии