我想是這樣的:SQL動態加入到用戶/數據提供表
SELECT * from metric_data m,
(SELECT table_for_join FROM join_tables WHERE from_table = 'usersupplied') u,
WHERE m.id = u.id
這是possble?
我正在使用oracle 11g,如果這很重要。
我想是這樣的:SQL動態加入到用戶/數據提供表
SELECT * from metric_data m,
(SELECT table_for_join FROM join_tables WHERE from_table = 'usersupplied') u,
WHERE m.id = u.id
這是possble?
我正在使用oracle 11g,如果這很重要。
SELECT m.* from metric_data m LEFT JOIN join_tables u ON(m.id = u.id AND u.from_table='usersuplied') WHERE 1=1
我認爲你需要使用動態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;
這看起來很有希望,我今天晚些時候會測試 –
這沒有任何意義,你確定你明白了這個問題嗎?'join_tables'doesn '不包含'id'列,並且我看不到我實際加入的第三個動態表格。 –