2011-12-13 47 views

回答

0
 
SELECT m.* from metric_data m 
LEFT JOIN join_tables u 
ON(m.id = u.id AND u.from_table='usersuplied') 
WHERE 1=1 
+0

這沒有任何意義,你確定你明白了這個問題嗎?'join_tables'doesn '不包含'id'列,並且我看不到我實際加入的第三個動態表格。 –

2

我認爲你需要使用動態sql。這樣的事情(對不起,我目前無法測試它,但我希望它能工作

CREATE PROCEDURE getMetricData (in_table_name varchar2) 
IS 
    real_tab_name varchar(32); 
BEGIN 
    SELECT table_for_join into real_tab_name 
    FROM join_tables WHERE from_table = in_table_name; 
    IF (real_tab_name IS NOT NULL) THEN 
    EXECUTE IMMEDIATE 'SELECT * from metric_data m, ' || real_tab_name || ' u 
    WHERE m.id = u.id'; 
    END IF; 
END; 
+0

這看起來很有希望,我今天晚些時候會測試 –