2012-02-29 49 views
0

是否可以從mysql內部的值列表中插入?從列表中插入

INSERT INTO changes(uid,typ) 
SELECT owner,(SELECT * FROM(20,30,40)) lst 
FROM info 

換句話說,你可以製作一個值列表,就像子查詢的結果一樣嗎?

+0

您希望在更改表中將哪些內容寫入列類型中?第一張唱片20張,第二張30張,第三張唱片40張? – Filype 2012-02-29 02:18:33

+0

@Filype:是的,那就是我想要的 – Mahks 2012-02-29 02:28:27

+0

你可以在信息表中添加另一列嗎? – Filype 2012-02-29 02:36:23

回答

1

其實,你試圖做的是sintactically和語義不正確:)你試圖從select返回3行,並把它們放到外部選擇,只接受一個單一的值(1列x 1行)。

此外,MySQL無法知道哪個用戶對應每個數字,對吧?然後,如果您有一種方法將內部選擇中的用戶鏈接到外部選擇,那麼您將擁有兩張表,並且您將加入它們。

現在,如果您實際上希望將每個所有者加入到您要查找笛卡爾產品的每個數字中,你可以做這樣的:

select owner from info, (select 20 union select 30 union select 40) t2 

通過這種方式,我們創建了3個記錄,每個這樣的我們將它們鏈接到所有者記錄的虛擬表,這將導致:

owner1 | 20 
owner1 | 30 
owner1 | 40 
owner2 | 20 
owner2 | 30 
owner2 | 40 
owner3 | 20 

依此類推。清楚嗎?

+0

是的,我猜笛卡爾產品是我想要的。我已經有了一個類似你的解決方案,如果沒有人有更好的解決方案,我會接受你的答案,謝謝 – Mahks 2012-02-29 02:53:53