[英]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.