0
我正在通過帶有遊標的數據集運行。 在每個遊標傳遞中,使用存儲過程將一個字符串拆分,該存儲過程將單個元素寫入臨時表SplitValues
,每行一個值。每個數據集還具有唯一的ID ds_id
從子查詢中的第二個表訪問值
SplitValues
value |
--------+
Item1 |
Item2 |
Item3 | `
我也有具有用於每個項目的ID的分割功能可能可能產生的參考表:
類
id | class |
---+--------
5 | Item1 |
6 | Item2 |
7 | Item3 |
8 | Item4 |
9 | Item5 |
我現在想要做的是遍歷SplitValues
的所有行,並將它們寫入表中以存儲數據,但是我們荷蘭國際集團之類的ID,而不是類本身以節省存儲:
存儲
ds_id | class_id |
------+-----------
0 | 5 |
0 | 6 |
0 | 7 |
這應該是相當簡單的,但我失敗了。我做了多次嘗試,一個是下面的遊標循環:
FETCH cur1 INTO ds_id, string;
CALL `Split_String`(string, ',');
INSERT INTO storage (ds_id, class_id)
SELECT ds_id,
(SELECT classes.id FROM classes WHERE class = SplitValues.value) as class_id ;
[...]
錯誤產生Unknown column 'SplitValues.value' in 'where clause'
我尋覓了很多,想我的問題是主題相關的別名,但無法找到一個解決方案。
這就像一個魅力 - 謝謝! – leepfrog 2013-02-09 13:49:08