2012-01-24 142 views
0

我的網站有一個好友提要,我想將操作合併到一起。例如,現在,它只是返回你的朋友搜索的東西。不過,我還希望它能顯示他們在同一個Feed中收藏的內容,從而按時間順序排序搜索和收藏夾。從兩個不同的MySql查詢中合併兩個不同的數組

問題是,我找不出解決這個問題的好方法。我無法使用MySql UNION,因爲我要從中搜索的兩個表(搜索表和最喜歡的表)的列數不一樣,而我需要更多的列。

我看着JOIN,但很難,因爲我已經連接兩個表一起返回搜索結果。

我在想什麼 - 有沒有辦法分別做兩個查詢,獲取輸出爲數組並將它們與基於時間列的PHP結合?

+0

它幾乎肯定會更容易,更effecient使用一個數據庫連接 –

回答

0

是的,可以分別執行兩個查詢,以數組形式抓取輸出並將它們與php結合使用,但不是,您不想這樣做。一旦你意識到自己沒有足夠的搜索和收藏夾,但是你也需要喜歡和帖子,你會打開自己的代碼亂七八糟。

我的建議是:

  • 對於每一個表,創建一個相應的視圖,所有這些觀點分享 結構。我在這裏模仿 其他語言的接口/實現模式。請確保您的視圖結構有時間戳,一個描述列,一個ID,用戶等任何你需要
  • 做你的組合查詢跨越接口:SELECT * FROM searches_view WHERE ... UNION SELECT * FROM favorites_view WHERE ... ORDER BY date_submitted DESC

這樣你的應用程序可以依靠標準化的「界面」通過「searching_view」等搜索,結果擴展到更多的項目類型是微不足道的。

+0

這是一個好主意。組織和功能絕對更好。謝謝! – Michael

1

難道你不能讓列號匹配起來,要麼加空白的那些少一些或沿着這些行的東西,仍然使他們匹配?

+0

選擇的名字做「」電子郵件來自customer1表 工會 選擇的姓名,電子郵件從的customer2 –

相關問題