2009-08-27 62 views
0

嘿,我想知道什麼是最好的方式做以下:查詢多個表並只返回一個數組?

查詢最多5臺(取決於用戶輸入)拉回來的結果,並返回單個陣列。比方說,我查詢表A並將結果存儲爲結果句柄(從pg_query()fn返回),我應該繼續並將其轉換爲數組,然後繼續將後續查詢的結果追加到該結果中?如果是這樣,我可以簡單地使用array_merge()函數?

回答

1

聽起來像是你想要一個UNION

+0

我寧願單獨查詢每個表(實際上是一個視圖),然後使用PHP加入結果,因此我想到了使用array_merge()fn。 –

+0

好的。那麼是的,'array_merge()'是你想要的。 – chaos

0

使用工會:

SELECT col1, col2 
    FROM a 
UNION 
SELECT col1, col2 
    FROM b 
0

使用UNION可能是唯一的,如果你的結果將是低的答案。 UNION對數據庫服務器有點徵稅,有些數據庫很難優化它們。通過使用Store Procedure或Making 5 Queries然後進行數組合並,將允許DB服務器緩存一些結果並提高數據庫性能。

如果結果集將會很低並且不會有太多的調用,那麼使用UNION應該沒問題。

+0

結果集將成千上萬。 –