2012-01-24 141 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 –

相关问题