2012-01-26 119 views
4

想要創建一個具有auto_increment字段的臨時表加上必須從另一個表中選擇的字段。MySQL使用auto_increment id創建臨時表並選擇查詢

下面是我通過他們的自我(不工作)

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'; 

回答

12

我想你可能會試圖做這裏列出的第一個案例:

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

..這對於你的例子看起來像:

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

..所以它可能只是在錯誤的地方是咬你在你的第一次嘗試的括號。

+0

在一個步驟中很好地工作。 – robsn

+0

是的,一步到位。可能應該是被接受的答案。 – BoB3K