-1
我需要從兩個表中選擇數據並插入到一個表中。同樣的問題被問及多次回答,但我有這樣的要求。通過從多個表中選擇數據插入到一個表中
我總共有三個表T1,T2,T3。 我的最終目標是將數據插入到表T3中。表T3中共有15列。在這15列中,我需要填充來自表T2的14列數據和最後一列需要連接表T1和T2的數據,我需要從中獲取該列的數據。請發現以下查詢
CREATE procedure proc_name
BEGIN
Insert into T3(
id,
col1,
col2,
....
...
col14)
select
(select id from T1 INNER JOIN T2 ON
(T1.somecol1=T2.somecol1,
T1. somecol2= T2.somecol2,
T1.somecol3 = T2.somecol3,
T1.somecol4= T2.somecol4)
ORDER BY T2.somecol5 LIMIT 1),
T2.col1,
T2.col2,
...
...
T2.col14 from T2;
END;
這裏T3的十四列的其餘部分與第一列id有關係。
每當我調用上述存儲過程時,即使我在T1中共有10個id,在T3中的所有記錄都會在表T1中插入top 1 id。 經過密切觀察,我才知道原因是因爲我提到了限制1,所以每次只能獲取第一個id。
如果我沒有提到限制1,它將返回所有10個id,並且它自己的查詢失敗。
無論如何我可以得到表T3中的所有ID。請建議我。
在此先感謝。
子查詢只允許在這裏返回1行。你需要一個返回所有列的連接來插入。 – jarlh 2015-03-02 13:08:36
http://stackoverflow.com/questions/17122128/insert-all-rows-from-table-int-other-table-single-query – Jannik 2015-03-02 13:10:14
hi @jarlh,感謝您的快速回復。請你詳細說明一下/詳細解釋一下。在提供的鏈接中,數據是從單個表中進行選擇的,但這裏需要從多個表中選擇數據。 – Ram 2015-03-02 13:11:45