2014-12-28 98 views
-1

某些SELECT語句以字段形式存儲在表中。我需要編寫SELECT語句,該語句與返回SELECT的某個SELECT連接。 例如:加入返回查詢的查詢

SELECT * 
FROM table1 
    JOIN (SELECT t_select FROM table2 WHERE = 'some_condition') 

最後一個選擇SELECT t_select FROM table2返回一些SELECT語句作爲text。 我需要加入table1,查詢的結果存儲在t_select

+0

哪裏是table1和table2的模式? – SMA

+1

_good for you,go for it!_ – potashin

+0

問題先前被問到[這裏](http://stackoverflow.com/questions/999200/is-it-possible-to-execute-a-string-in-mysql),雖然恕我直言接受的答案是一個不同的問題,所以關閉作爲一個副本可能是不恰當的。 – Kevin

回答

1

我理解嗎?基本上,你想「評估」存儲在表中的SELECT?這對我來說似乎是一個非常糟糕的設計。

如果您確實需要這樣做,您需要將SELECT語句自己拉出來,然後將其作爲第二個查詢發送。你不能在純粹的MySQL中這樣做。

+0

這不是糟糕的設計。數據庫是非常龐大的,我存儲在選擇語句 – Andrew

+1

字段的一些信息所以,而不是有多個列,你有一個原始的SELECT語句,它有列呢?這幾乎可以無視MySQL的查詢引擎。什麼對你來說「真的很大」?這聽起來像是由於誤解SQL和關係數據庫而造成的設計。 – Daniel

+0

也許OP想要一個準備好的聲明?那些可以提交? – Kevin

0

你只是想要一個子查詢?

SELECT * 
FROM table1 t1 JOIN 
    (SELECT t2.* FROM table2 t2 WHERE = 'some_condition') t2 
    on t1.<somecol> = t2.<someothercol>; 
0

總而言之,您不能使用另一個查詢執行存儲在表中的查詢。你將不得不先檢索查詢,準備它,然後執行它。看看執行立即:

http://dev.mysql.com/worklog/task/?id=2793 

http://www.postgresql.org/docs/9.1/static/ecpg-sql-execute-immediate.html 

在表中存儲sql語句不是很常見,並且通常有更好的方法來做到這一點。