嘿,我想知道什麼是最好的方式做以下:查詢多個表並只返回一個數組?
查詢最多5臺(取決於用戶輸入)拉回來的結果,並返回單個陣列。比方說,我查詢表A並將結果存儲爲結果句柄(從pg_query()fn返回),我應該繼續並將其轉換爲數組,然後繼續將後續查詢的結果追加到該結果中?如果是這樣,我可以簡單地使用array_merge()函數?
嘿,我想知道什麼是最好的方式做以下:查詢多個表並只返回一個數組?
查詢最多5臺(取決於用戶輸入)拉回來的結果,並返回單個陣列。比方說,我查詢表A並將結果存儲爲結果句柄(從pg_query()fn返回),我應該繼續並將其轉換爲數組,然後繼續將後續查詢的結果追加到該結果中?如果是這樣,我可以簡單地使用array_merge()函數?
聽起來像是你想要一個UNION
。
使用工會:
SELECT col1, col2
FROM a
UNION
SELECT col1, col2
FROM b
使用UNION可能是唯一的,如果你的結果將是低的答案。 UNION對數據庫服務器有點徵稅,有些數據庫很難優化它們。通過使用Store Procedure或Making 5 Queries然後進行數組合並,將允許DB服務器緩存一些結果並提高數據庫性能。
如果結果集將會很低並且不會有太多的調用,那麼使用UNION應該沒問題。
結果集將成千上萬。 –
我寧願單獨查詢每個表(實際上是一個視圖),然後使用PHP加入結果,因此我想到了使用array_merge()fn。 –
好的。那麼是的,'array_merge()'是你想要的。 – chaos