繁体   English   中英

SQL查询以收集来自不同表的条目-需要替代UNION

[英]SQL query to collect entries from different tables - need an alternate to UNION

我正在运行sql查询,以从许多表中获取基本详细信息。 按最后更新日期字段排序。 它非常棘手,我在考虑是否有替代方法可以使用UNION子句...我正在使用PHP MYSQL。

实际上,我有一些包含新闻,文章,照片,事件等的表格,需要将它们全部收集到一个查询中,以显示简单的内容-网站上新添加的内容。

也许是用PHP而不是MySQL来做-如果您想要最新的n项目,然后获取每个新闻项目,文章,照片和事件的最新n ,并使用PHP排序(显然,您需要每个项目的最后n ,然后在PHP中修剪数据集)。 这可能比将它们与UNION组合起来要容易,因为它们可能有很多不同的数据项。

我不知道可以用UNION替代您想要的东西,希望这些获取不会太昂贵。 不过,对此进行描述绝对是明智的。

如果在查询中使用联接 ,则可以从与外键相关的differents表中选择数据。

执行UNION并没有错(除非您真的在谈论加入相关实体(即具有外键关系的实体)。

但是您可能要使用UNION ALL而不是UNION ,因为UNION会执行排序以删除重复的条目。

您可以从另一个角度看待这个问题:您是否需要绝对最新的信息? (当有人输入新信息时,它就会出现)

如果不是,则可以有一个表,其中包含所需格式的查询结果(用作缓存),并每5分钟左右更新一次此表。 然后,您的查询问题变得微不足道了,因为您可以在后台将更新作为多个更新运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM