2012-01-26 3 views
4

хочу создать временную таблицу с полем auto_increment плюс поле, которое необходимо выбрать из другой таблицы.MySQL создает временную таблицу с идентификатором auto_increment и выбирает запрос

Вот что я (не работает)

CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 
(SELECT valueName AS valueName 
FROM sometable 
WHERE sometable.somevalue='00')); 

эти работы на них самих, но может получить право синтаксис сделать как

CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) 

CREATE TEMPORARY TABLE tmp AS SELECT valueName AS valueName FROM sometable 
WHERE sometable.somevalue='00'; 

ответ

6
CREATE TEMPORARY TABLE tmp (
    id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    valueName varchar(16) // whatever type it should be 
); 

INSERT INTO tmp (valueName) SELECT valueName FROM sometable WHERE ... 

Соответствующие документы здесь: http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-select-into-table.html

+0

Это будет работать вслепую, пытаясь сделать это за один шаг – user1171669

12

Думаю, вы можете попробовать первый случай, описанный здесь:

http://dev.mysql.com/doc/refman/5.5/en/create-table-select.html

..which для примера будет выглядеть следующим образом:

CREATE TEMPORARY TABLE tmp (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY) 
SELECT valueName AS valueName FROM sometable 
WHERE sometable.somevalue='00'; 

..so это может быть просто в круглые скобки неположенных местах, что лечись в первой попытке.

+0

Работая красиво в один шаг. – robsn

+0

Да, работает и в один шаг. Вероятно, должен быть принятый ответ. – BoB3K

Смежные вопросы