Forum Webscript.Ru
Общие => Базы данных => Тема начата: Vivaldy от 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
вообще не понятно... ???
-
а что выдает этот запрос?
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
ну здесь все правильно.
оно действительно не знает что это у тебя за таблица.
-
этот запрос:
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
уже говорит что нет такой таблицы....
-
для тех кто на подводной лодке повторяю:
а что выдает этот запрос?
CREATE TEMPORARY TABLE tempo SELECT lng.id_s as id FROM lng WHERE lng.name_value=\'tbl_fpp\';
всмысле affected rows
уже говорит что нет такой таблицы...
потому что ты ее не указал в части from. поэтому оно не знает о существовании такой таблицы в запросе.
-
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
-
1. select выполняешь в той же сессии?
2. есть ли в базе таблица с названием \'tempo\', но не временная а обыкновенная?
-
1. сессия одна и та же
2. в базе такой таблицы нет
-
1. какая версия mysql?
2. можешь воспроизвести это на каком-нибудь другом сервере mysql?